ANS85 

完了に失敗した論理誤り条件

状態キー 1 の値が「4」で、論理誤り条件が発生したことが示されている場合、状態キー 2 にはその原因を示す次のいずれかの値が設定される。

1 (すべてのファイル) すでに開かれているファイルに対して、OPEN 文を実行しようとしたことを示す。
2 (すべてのファイル) 開かれていないファイルに対して、CLOSE 文を実行しようとしたことを示す。
3 (すべてのファイル、順呼び出しの場合のみ) 関連ファイルに入出力操作を実行した後に DELETE 文または REWRITE 文を実行したが、その直前の入出力操作が、正常に実行された READ 文ではない。
4 (レコード順編成ファイルのみ) 境界違反が発生したことを示す。考えられる原因は、関連ファイルの RECORD IS VARYING 句で許容される最大レコードよりも長いレコード、または最小レコードよりも短いレコードを WRITE または REWRITE しようとしたことである。
5 (すべてのファイル) ファイルのレコードを REWRITE しようとしたが、そのレコードのサイズが、書き換え先のレコードと同じではない。

MF 行順編成ファイルの場合、このレコードの大きさは、空白を除去しタブを圧縮し空文字を挿入した後のレコードの物理的な大きさを指す。この場合、新しいレコードの物理サイズは元のレコード サイズより小さくてもよい。

6 (すべてのファイル) 入力モードまたは入出力両用モードで開かれているファイルに対して、順呼び出しの READ 文を実行しようとしたが、有効な次のレコードが存在しないことを示す。これは、次の条件によって発生する可能性がある。
  • 先行する START 文が失敗した。
  • 先行する READ 文がファイル終了以外の条件で失敗した。
  • 先行する READ 文によってファイル終了条件が発生した。
7 (すべてのファイル) 入力モードまたは入出力両用モードで開かれていないファイルに対して READ 文または START 文を実行しようとしたことを示す。
8 (すべてのファイル) 入出力モード、出力モード、または拡張モードで開かれていないファイルに対して、または順呼び出しの入出力モードで開かれたファイルに対して、WRITE 文を実行しようとしたことを示す。
9 (すべてのファイル) 入出力両用モードで開かれていないファイルに対して、DELELTE 文または REWRITE 文を実行しようとしたことを示す。