図6-79-READ構文(順次読み取り)
ファイルから次の(または前の)レコードを取得する。
ファイル名-1は、INPUTまたはI-Oに対して常にOPEN(6.31)である必要がある。
ファイル名-1のACCESS MODEがRANDOMの場合、この書き方のREAD文は使用できない。
ACCESS MODEがSEQUENTIALの場合、この書き方のREAD文が唯一使用可能となり、NEXT/PRIOR句はオプションとして扱われる。
READ ファイル名-1
・・・正しい書き方として認められる。そのため、ACCESS MODE DYNAMICが指定されていて、上記のような文を順次読み取りとして処理することをopensource COBOLコンパイラに通知する場合は、文にNEXTまたはPRIORを追加する必要がある(そうでない場合は、ランダム読み取りとして扱われる)。
ファイル名-1で次に使用可能なレコードが取得され、その内容はファイルのFD(5.1)に従属する01レベルのレコード構造に格納される。
NEXT句およびPREVIOUS句では、読み取りプロセスがどの方向でファイルを通過するかを指定する。どちらも指定されていない場合は、NEXTが指定されているものとみなされる。
PREVIOUS句は、ORGANIZATION INDEXEDファイルでのみ使うことができる。
INTO句を使うと、読み取りが成功した場合、読み取ったレコード内容がMOVEの規則に従って一意名-1にMOVEされる。
レコードのLOCK句については6.1.8.2で説明している。
AT END句が存在する場合、ファイルステータスが10「ファイルの終わり」であることが原因でREADの試行が失敗した時に命令文1を実行する。AT END句は、ゼロ以外のファイルステータス値を検出しないため、DECLARATIVESルーチン(6.3)またはREAD後に明示的に宣言されたファイルステータス項目を使って、ファイルの終わり以外のエラー状態を検出する。