2016-11-05 5 views
1

私はFirebirdを使ってフリーパスカルアプリケーションを持っています。どのように私はこのFirebirdのストアドプロシージャからの出力変数を取得することができますコードでFirebirdから出力変数を取り出す方法

input parameters: ID (integer) 
output parameters: G (integer) 

begin 
if(select town.count from town where town.id=:id) then 
    G = 100 
else 
    G = 200; 
    suspend; 
end 

in designer->SQL 
EXECUTE PROCEDURE ID_DEV :ID RETURNING_VALUES :G 

:私が試してみました

Token unknown line (where :G located)

SQLQueryProc.Prepare; //here i got an error 
SQLQueryProc.ParamByName('ID').Value:=res; 
SQLQueryProc.ExecSQL(); 
SQLTransaction.CommitRetaining; 
ID:=SQLQueryProc.FieldByName('G').AsInteger; 

私は私のアプリを実行すると、私はエラーを取得します多くの組み合わせ。理由は何ですか?

答えて

1

RETURNING_VALUES :G句は、PSQL内の有効なFirebird構文(ストアドプロシージャ内)だけです。ストアドプロシージャを実行したい場合は、のみ使用する必要があります。

EXECUTE PROCEDURE ID_DEV :ID 

を使用すると、実行可能なストアドプロシージャを持つようにしたいと、あなたも、あなたの内側に一時停止文を持つものとして、ストアドプロシージャからSUSPENDを削除する必要がありますストアドプロシージャは、代わりに選択可能なストアドプロシージャにします。

関連する問題