預存程序定義
CREATE PROCEDURE sp_results_demo
@InParmInt INT, @OutParmInt INT OUTPUT
AS
BEGIN
SELECT 1, 2, 3, 4;
SELECT uid, id FROM sysobjects WHERE type = 'U';
SELECT @OutParmInt = 69;
RETURN 16;
END
PowerScript 程式碼
LONG ll_Return, ll_Parm1, ll_Parm2
LONG ll_Res1, ll_Res2, ll_Res3, ll_Res4, ll_Res5, ll_Res6
DECLARE results_demo PROCEDURE FOR
@ReturnValue = sp_results_demo
@InParmInt = :ll_Parm1,
@OutParmInt = :ll_Parm2 OUTPUT
USING SQLCA;
EXECUTE results_demo;
-- 第一個結果集 (4 欄)
DO WHILE SQLCA.SQLCode = 0
FETCH results_demo INTO :ll_Res1, :ll_Res2, :ll_Res3, :ll_Res4;
LOOP
-- 第二個結果集 (2 欄)
FETCH results_demo INTO :ll_Res5, :ll_Res6;
DO WHILE SQLCA.SQLCode = 0
FETCH results_demo INTO :ll_Res5, :ll_Res6;
LOOP
-- 取得返回值與 OUTPUT 參數
FETCH results_demo INTO :ll_Return, :ll_Parm2;
CLOSE results_demo;
關鍵點
- 多結果集依序
FETCH,每個集合結束由 SQLCode <> 0 判斷。
- 最後一次
FETCH 取得 @ReturnValue 與 OUTPUT 參數。
USING SQLCA 指定交易物件,確保連線上下文一致。