2016-11-05 42 views
1

我有一個免費的使用火鳥的pascal應用程序。我怎樣才能從這個火鳥存儲過程檢索輸出變量:如何從火鳥檢索輸出變量

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 

在代碼:

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

當我運行我的應用程序我得到一個錯誤:

Token unknown line (where :G located)

我曾嘗試許多組合。是什麼原因?

回答

1

RETURNING_VALUES :G子句只是PSQL內部的有效Firebird語法(所以在存儲過程中)。如果要執行存儲過程,你應該只使用:

EXECUTE PROCEDURE ID_DEV :ID 

當你想有一個可執行的存儲過程,你也應該從存儲過程中刪除SUSPEND,具有內暫停語句您存儲過程使其成爲可選的存儲過程。