說明如何在自訂 Powerbuilder 自訂 Function 中呼叫 stored procedure 執行
Function Myfunc()
mtranno=dw_focus.getitemstring(1,"tranno")
mproc=""
moperate=""
//經過測試,MS SQL與Sybase用法不同,但PB的說明檔似乎只針對 Sybase
//一個Function裡面呼叫多次執行,Declare 只需一次即可.
DECLARE stock_proc PROCEDURE FOR sp_post
(:mtrantype ,:mtranno, :mproc,:moperate); //for MS SQL or ORACLE use only
//@trantype =:mtrantype ,@tranno =:mtranno, @task=:mproc,@mvtype=:moperate; //for sybase use only
//第一次執行PR
mtrantype="PR"
EXECUTE stock_proc ;
if sqlca.sqlcode= -1 then
messagebox("Notice","SP_POST failed before Deleting PR.~n~n"+sqlca.sqlerrtext)
return 0
end if
commit using sqlca;
//第二次執行PX
mtrantype="PX"
EXECUTE stock_proc ;
if sqlca.sqlcode= -1 then
messagebox("Notice","SP_POST failed before Deleting PX.~n~n"+sqlca.sqlerrtext)
return 0
end if
commit using sqlca;
重複執行只需先改變變數,再次呼叫執行即可
這個stored procedure並未接收回傳資料,沒有用到Open,Fetch,所以就不必加 Close.