カーソルを定義し、それを結果セット ロケーターの変数に関連付けます。
制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。
構文:
>>-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
コメント:
弊社の Enterprise Developer for Visual Studio 製品を使用して、SQL CLR ストアド プロシージャを作成できます。
結果セットを返し DBMAN=ODBC と DIALECT=MAINFRAME によってコンパイルされる SQL CLR ストアド プロシージャを呼び出すクライアント アプリケーションでサポートされます。