io non conosco questo database PL, quindi suppongo che potrebbero esserci delle varianti.
io utilizzo interbase/firebird.
in sql puoi fare le query parametriche
codice:
select
clienti.id,
clienti.nome,
clienti.cognome
from clienti
where clienti.id=:IdCliente
e poi in un secondo momento (prima di eseguire la query) definisci il parametro IdCliente
oppure puoi creare una 'Stored Procedure', che e' una procedura memorizzata all'interno del tuo database a che in sintesi passi i parametri da te definiti e ti restituisce un dataresoult dopo una serie di operazioni....
in questo esempio passo come parametro in valore idanagrafica, e ottengo come dataresoult 1 solo record contenente due field che sono TOTALEIMPORTOA e TOTALEIMPORTOB.
chiaramente a secondo delle esigenze si puo ottenere un dataresoult di n record e n fields.
codice:
CREATE PROCEDURE TOTALI (
IDANAGRAFICA_IN INTEGER)
RETURNS (
TOTALEIMPORTOA NUMERIC(15,2),
TOTALEIMPORTOB NUMERIC(15,2))
AS
BEGIN
/* Procedure Text */
SELECT
SUM(movimenti.importoa),
SUM(movimenti.importob)
FROM movimenti
WHERE movimenti.idanagrafica=:idanagrafica_in
INTO
totaleimportoa,
totaleimportob;
IF (totaleimportob IS NULL) THEN totaleimportob=0;
SUSPEND;
END
ciao