SQL の close に関する考慮事項
SQL の場合、EGL の close 文は、open 文または get...forUpdate 文で作成された結果セットを削除します。
以下のような場合、EGL は結果セットを自動的に削除します。
- 一連の定位置の get 文 (get next など) が noRecordFound 条件で終わっている場合。
- 単一行が読み取られ、オプションとして forUpdate および singleRow のいずれも指定されていないときに、 EGL が SQL レコードに対して get 文を実行する場合。
- EGL が、get...forUpdate 文によって開かれたカーソルを使用する replace 文または delete 文を実行する場合。
- EGL が、オープン・カーソルに関連付けられているレコードの open 文または get 文の処理を開始する場合。 カーソルは、他の処理を実行する前に閉じられます。
- プログラムにより sysLib.commit() が実行される場合。 ただし、open 文の説明にあるように、hold オプションが有効な場合、カーソルは閉じられません。
- プログラムが forEach ループの終わりに達した場合。
構文
構文図については、close(コア) 文を参照してください。
例
以下に、SQL の close 文の例を示します。
close myCustomer;
互換性
各リレーショナル・データベース管理システム (RDBMS) は、独自のバージョンの SQL を持っています。 すべての実装環境ですべての SQL コマンドを使用できるとは限りません。 組み込み SQL をコーディングする前に、ご使用の RDBMS の資料を参照してください。
以下の表は、close 文および SQL の互換性に関する考慮事項を説明したものです。
| プラットフォーム | 問題 |
|---|---|
| CICS® | converse 文がセグメント化モードで実行された場合、EGL は、開いているすべての結果セットを閉じます (その結果セットが hold オプションによって開かれた場合も含む)。 |
| IMS/VS | converse 文が実行された場合、EGL は常に、開いているすべての結果セットを閉じます (その結果セットが hold オプションによって開かれた場合も含む)。 (IMS/VS プログラムは常にセグメント化されています。) |
| JSF ハンドラー | プログラムが Web ページを表示した場合、EGL は、開いているすべての結果セットを閉じます (その結果セットが hold オプションによって開かれた場合も含む)。 |