CLOSE ステートメントの考慮事項
CLOSE ステートメントは、オープン・モードであるファイルに対してしか実行できません。
REEL 句または UNIT 句のない CLOSE ステートメントが正常に実行されると、次のような結果が生じます。
- ファイル名-1 に関連するレコード域が使用できなくなります。 CLOSE ステートメントの実行が失敗すると、レコード・データの使用可能性が未定義のままにとどまります。
- 該当のファイルに対する OPEN ステートメントは、それ以外の入出力ステートメントに先立って実行しなければなりません。
- ファイルがオープン状況で CLOSE ステートメントの実行が失敗した場合 、このファイルの EXCEPTION/ERROR プロシージャー が (指定されていれば) 実行されます。
- REEL 句または UNIT 句のない CLOSE ステートメントが、実行単位が終了する前、あるいはプログラムが取り消される前に処理されなかった場合、ファイルは暗黙的にクローズされます。
- 該当のファイルのファイル制御記入項目で SELECT OPTIONAL 文節が指定されてはいるが、そのファイルが実行時に存在しない場合には、標準のファイル終わり処理は実行されません。
- FILE-CONTROL 記入項目に FILE STATUS 文節が指定されている場合には、CLOSE ステートメントの実行時に、関連した状況キーが更新されます。 状況キーの詳細は 共通の処理機能を参照してください。
- 相対ファイルのみ: 相対ファイルの境界を現時点のレコード数を超えてファイル・サイズの範囲内で拡張するには、 削除されたファイルを INZPFM コマンドを使用してそのファイルの処理前に追加します。 さらに多くのレコードがファイルに追加される必要があり、ファイル状況 0Q が受け取られた場合、これを行う必要があります。 相対ファイルを現在のサイズ以上に拡張しようとするどちらの試みも、境界違反となります。