OPEN ステートメントのプログラミング上の注意事項
OPEN ステートメントの実行が正常に行われると、 ファイルの使用可能性が決まり、そのファイルがオープン・モードになります。 表 1 に、ファイルが使用可能な場合と使用不可の場合のオープンの結果を要約しています。
| ファイルが使用可能である場合 | ファイルが使用不可である場合 | |
|---|---|---|
| INPUT | 正常なオープン | オープンが失敗する |
| INPUT (オプショナル・ファイル) | 正常なオープン | 正常なオープン。 最初の読み取りによって AT END 条件が発生する。 |
| I-O | 正常なオープン | オープンが失敗する |
| I-O (オプショナル・ファイル) | 正常なオープン | オープンによってファイルが作成される (1) |
| OUTPUT | 正常なオープン。 ファイルにはレコードが入っていない | オープンによってファイルが作成される (1) |
| EXTEND | 正常なオープン | オープンが失敗する |
| EXTEND (オプショナル・ファイル) | 正常なオープン | オープンによってファイルが作成される (1) |
| 注: (1)
動的ファイル作成が指定され、ファイルが適切に編成されている場合、
そのファイルが作成されます。
動的ファイル作成を参照してください。
|
||
- OPEN ステートメントの正常な実行により、関連するレコード域がプログラムで使用可能になります。 最初のデータ・レコードは取得または解放されません。
- OPEN ステートメントは、実行可能なあらゆる入出力ステートメント (USING または GIVING 句を指定した SORT または MERGE ステートメントを除く) の実行に先立って、 正常に実行されなければなりません。
- READ ステートメントは、INPUT または I-O 用にオープンされているファイルに対して実行されます。
- WRITE ステートメントは、OUTPUT または EXTEND 用にオープンされているファイル (順次ファイルだけ) に対して実行されます。 WRITE ステートメントは、I-O 用にオープンされているランダムまたは動的アクセス・モードの索引付きまたは相対ファイル、 および I-O 用にオープンされている TRANSACTION ファイルに対しても実行されます。
- REWRITE ステートメントは、I-O 用にオープンされているファイルに対して実行されます。
- START ステートメントは、INPUT または I-O 用にオープンされている索引付きまたは相対ファイルに対して実行されます。
- DELETE ステートメントは、I-O 用にオープンされている索引付きまたは相対ファイルに対して実行されます。
- 1 つのファイルを同じプログラムの中で INPUT、OUTPUT、I-O、または EXTEND (順次ファイルだけ) 用にオープンすることができます。 あるファイルについて OPEN ステートメントを最初に実行した後では、 後続のそれぞれの OPEN ステートメントを実行する前に、REEL または UNIT 句 (順次ファイルの場合だけ) または LOCK 句を指定しない CLOSE ファイル・ステートメントが正常に実行されなければなりません。
- FILE-CONTROL 記入項目に FILE STATUS 文節が指定されている場合は、OPEN ステートメントの実行時に関連する状況キーが更新されます。 状況キーの詳細は、共通の処理機能を参照してください。
- すでにオープン状況にあるファイルに対して OPEN ステートメントが出されると、このファイルに対する EXCEPTION/ERROR プロシージャー (指定されている場合) が実行され、ファイル状況 41 が戻されます。