カーソルを定義し、それを結果セット ロケーターの変数に関連付けます。
構文:
>>-EXEC SQL--ALLOCATE cursor_name FOR RESULT SET :rs_locator_variable->
>-----END-EXEC-----<>
パラメーター:
cursor_name |
事前に宣言済みの開いたカーソル。 |
:rs_locator_variable |
アプリケーション プログラムで宣言された結果セット ロケーターのホスト変数 |
例:
working-storage section.
exec sql include sqlca end-exec.
01 mfsqlmessagetext pic x(200).
01 hv-country pic n(15) national.
01 CustomerID pic n(5) national.
01 Company pic n(40) national.
01 City pic n(15) national.
01 CustomerID2 pic n(5) national.
01 Company2 pic n(40) national.
01 City2 pic n(15) national.
01 rsl sql type result-set-locator varying.
01 rs2 sql type result-set-locator varying.
01 rs3 sql type result-set-locator varying.
procedure division.
exec sql connect to Northwind end-exec
move N"UK" to hv-country
*> Test DB2 result set locators
*> This proc opens 3 cursors. closes 2 and re-opens on
*> So should return 2 result sets
exec sql call TestProc1(:hv-country) end-exec
exec sql
associate locators (:rsl, :rs2, :rs3)
with procedure TestProc1
end-exec
exec sql
allocate c1 cursor
for result set :rsl
end-exec
if sqlcode not = 0
display "Open 1st locator failed"
end-if
exec sql
allocate c2 cursor
for result set :rs2
end-exec
if sqlcode not = 0
display "Open 2nd locator failed"
end-if
exec sql
allocate c3 cursor
for result set :rs3
end-exec
if sqlcode = 0
display "FAIL: Open 3rd locator succeeded"
end-if
説明:
結果セットを返し DBMAN=ODBC および DIALECT=MAINFRAME または DBMAN=ADO および DIALECT=MAINFRAME でコンパイルされる SQL CLR ストアド プロシージャを呼び出すクライアント アプリケーションでサポートされます。