未処理の行を破棄し、カーソルにより保持されているロックを解除します。
構文:
>>---EXEC SQL---.------------.--->
+-AT db_name-+
>--CLOSE---cursor_name---.------------.---END-EXEC---><
パラメーター:
AT db_name |
DECLARE DATABASE を使用して宣言されたデータベースの名前。この句は必須ではありません。省略すると、DECLARE CURSOR 文に関連付けられている接続に自動的に切り替わります (その接続が現在の接続とは異なる場合。DECLARE CURSOR 文の実行中のみ有効)。 下位互換性のために提供されています。 |
cursor_name |
すでに宣言済みの、開いたカーソル。 |
例:
*Declare the cursor...
EXEC SQL
DECLARE C1 CURSOR FOR
SELECT staff_id, last_name
FROM staff
END-EXEC
IF SQLCODE NOT = ZERO
DISPLAY 'Error: Could not declare cursor.'
DISPLAY SQLERRMC
DISPLAY SQLERRML
EXEC SQL DISCONNECT ALL END-EXEC
STOP RUN
END-IF
EXEC SQL
OPEN C1
END-EXEC
IF SQLCODE NOT = ZERO
DISPLAY 'Error: Could not open cursor.'
DISPLAY SQLERRMC
DISPLAY SQLERRML
EXEC SQL DISCONNECT CURRENT END-EXEC
STOP RUN
END-IF
PERFORM UNTIL sqlcode NOT = ZERO
*SQLCODE will be zero as long as it has successfully fetched data
EXEC SQL
FETCH C1 INTO :staff-staff-id, :staff-last-name
END-EXEC
IF SQLCODE = ZERO
DISPLAY "Staff ID: " staff-staff-id
DISPLAY "Staff member's last name: " staff-last-name
END-IF
END-PERFORM
EXEC SQL
CLOSE C1
END-EXEC
IF SQLCODE NOT = ZERO
DISPLAY 'Error: Could not close cursor.'
DISPLAY SQLERRMC
DISPLAY SQLERRML
END-IF
説明:
カーソルは、閉じる前に宣言して開いておく必要があります。開いたすべてのカーソルは、プログラム終了時に自動的に閉じます。