ALLOCATE CURSOR

ALLOCATE CURSOR ステートメントは、カーソルを定義し、それを結果セット・ロ ケーター変数に関連付けます。

呼び出し

このステートメントは、 アプリケーション・プログラムに組み込むことができます。これは、動的に準備できる実行可能ステートメントです。これを対話式に発行することはできません。REXX で指定してはなりません。

権限

権限は不要です。

構文

構文図を読む構文図をスキップする
>>-ALLOCATE -cursor-name--CURSOR FOR RESULT SET--rs-locator-variable-><

説明

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;