ALLOCATE CURSOR
ALLOCATE CURSOR ステートメントは、カーソルを定義し、それを結果セット・ロ ケーター変数に関連付けます。
呼び出し
このステートメントは、 アプリケーション・プログラムに組み込むことができます。これは、動的に準備できる実行可能ステートメントです。これを対話式に発行することはできません。REXX で指定してはなりません。
権限
権限は不要です。
説明
- cursor-name
- カーソルの名前を指定します。この名前は、ソース・プログラム内ですでに宣言されているカーソルを 示すものであってはなりません。
- CURSOR FOR RESULT SET rs-locator-variable
- 結果セット・ロケーター変数を宣言するための規則に従い、 アプリケーション・プログラム内ですでに宣言された 結果セット・ロケーター変数を指定します。
- 結果セット・ロケーター変数は ASSOCIATE LOCATORS ステートメントまたは DESCRIBE PROCEDURE SQL ステートメントで戻されたときに、有効な結果セット・ロケーター値を含んでいなければなりません。結果セット・ロケーター変数の値は、カーソルの割り当て時に使用されます。 結果セット・ロケーターの値を後で変更しても、割り当てカーソルに影響はありません。結果セット・ロケーターの値は、そのソース・プログラム内で割り当てられる別のカーソルに使用されている値と同じであってはなりません。
規則
- 割り当てカーソルを使用する場合は、以下の規則が適用されます。
- OPEN ステートメントを使用して割り当てカーソルをオープンすることはできません。
- CLOSE ステートメントを使用して、割り当てカーソルをクローズすることができます。割り当てカーソルをクローズすると、ストアード・プロシージャー内 に定義された関連するカーソルがクローズされます。
- 各結果セットにつき、ただ 1 つのカーソルを 割り当てることができます。
- CLOSQLCSR オプションを指定したプログラムでは、割り当てカーソルにも宣言カーソルの場合と同じ規則が当てはまります。CLOSQLCSR オプションは、CRTSQLxxx コマンドで指定するか、SET OPTION ステートメントを使用して指定できます。
- コミット操作を実行すると、プロシージャーで WITH HOLD が定義されていない割り当てカーソルのうち、*NONE 以外のコミット・レベルで実行されていない割り当てカーソルがクローズします。
- 割り当てカーソルをクローズすると、プロシージャー内の関連カーソルもクローズします。
例
カーソル C1 を定義し、結果セット・ロケーター変数 LOC1 と、SQL プロシージャーによって返される関連結果セットとにそのカーソルを関連付ける SQL プロシージャーの例を以下に示します。
ALLOCATE C1 CURSOR FOR RESULT SET LOC1;