付録G 入出力状態の値
入出力状態の値が表す内容を,次に示します。
条件 |
入出力状態の値 |
順編成ファイル,相対編成ファイル, 索引編成ファイルの場合 |
HiRDBによる索引編成ファイルの場合 |
COBOL入出力サービスルーチンの場合 |
---|---|---|---|---|
成功 |
00 |
入出力文の実行が成功した。その入出力動作に関しては,これ以上情報がない。 |
○ |
○ |
02 |
入出力文の実行は成功したが,重複キーが検出された。
|
× |
× |
|
04 |
READ文の実行は成功した。しかし,処理したレコードの長さが,そのファイルのファイル固有属性に従っていない(テキスト編成ファイルだけ)。 または,CSV編成ファイルから入力した一つのセルの文字列長が,入力領域より長い。 |
− |
× |
|
05 |
OPEN文の実行は成功した。しかし,OPEN文を実行したとき,参照した不定ファイルはない。OPEN文のモードが入出力両用,または拡張ならば,ファイルは生成される。 |
○ (入力モードの場合だけ) |
× |
|
07 |
入出力文の実行は成功した。ただし,REEL/UNIT指定のCLOSE文で参照したファイルが非リール/ユニットの媒体上にある(順編成ファイルだけ)。 |
− |
× |
|
ファイル終了 |
10 |
順アクセスのREAD文を実行しようとしたが,次のレコードがない。次の場合のどちらかである。
|
○ |
○ (1.の場合だけ) |
14 |
相対編成ファイルに対して順アクセスのREAD文を実行しようとしたが,相対レコード番号の有効けた数がそのファイルの相対キーデータ項目のサイズよりも大きい(相対編成ファイルだけ)。 |
− |
○ (相対編成ファイルの場合だけ) |
|
無効キー |
21 |
順アクセスで,順序誤りがあった。成功したREAD文と次のREWRITE文の間で主レコードキーの値が変更されたか,またはWRITE文の実行時に主レコードキーの値が昇順になっていない。 |
○ |
× |
22 |
重複キーがあった。
|
○ (2.の場合だけ) |
○ (相対編成ファイルで1.の場合だけ) |
|
23 |
次の場合のどちらかである。
|
○ |
○ (相対編成ファイルの場合だけ) |
|
24 |
次の場合のどれかである。
|
○ (1.の場合だけ) |
○ (相対編成ファイルの場合だけ) |
|
永続誤り |
30 |
永続誤りがある。次のどれかである。
|
ファイル位置指示子が不定となっている。例えば,COMMIT文,ROLLBACK文の実行によってファイル位置指示子が有効なレコードを指していない。 |
○ (相対編成ファイルで,1.,2.の場合だけ) |
34 |
区域外書き出しによる永続誤りがある。 COBOLの外部で定義されたファイルの区域外にレコードを書き出そうとした(順編成ファイルだけ)。 |
− |
○ |
|
35 |
不定ファイルでないファイルがないとき,INPUT指定,I-O指定,またはEXTEND指定を持つOPEN文を実行しようとしたことによる永続誤りがある。 |
○ |
○ |
|
37 |
OPEN文を実行しようとしたが,指定されたファイルが,そのOPEN文で指定されたモードを使えない。 次の場合のどれかである。
|
× |
○ (1.,2.,および3.の場合だけ) |
|
38 |
施錠して閉じたファイルに対して,OPEN文を実行しようとしたことによる永続誤りがある。 |
○ |
× |
|
39 |
ファイル固有属性とプログラム中で指定した属性との間で矛盾が検出されたため,OPEN文が不成功になった。 |
× |
○ |
|
論理誤り |
41 |
開かれているファイルにOPEN文を実行しようとした。 |
○ |
○ |
42 |
開かれていないファイルにCLOSE文を実行しようとした。 |
○ |
○ |
|
43 |
順アクセスで,DELETE文,またはREWRITE文を実行する前に,関連するファイルに対して実行された最後の入出力文が,成功したREAD文でない。 |
○ |
○ |
|
44 |
次のどちらかの条件で,区域外書き出しが起こった。
|
○ (1.の場合だけ) |
○※1 |
|
46 |
入力モードまたは入出力両用レコードで開かれたファイルに順アクセスのREAD文を実行しようとしたが,有効な次のレコードがない。次の場合のどれかである。
|
○ |
○ (1.は相対編成ファイルの場合だけ) |
|
47 |
入力モード,または入出力両用モードで開かれていないファイルに,READ文,またはSTART文を実行しようとした。 |
○ |
○ |
|
48 |
入出力両用モード,出力モード,または拡張モードで開かれていないファイルに,WRITE文を実行しようとした。 |
○ |
○ |
|
49 |
入出力両用モードで開かれていないファイルに,DELETE文,またはREWRITE文を実行しようとした。 |
○ |
○ |
|
作成者規定 |
90 |
入出力文の実行時,実行できない状態になった。 次のどれかである。
|
○※2 |
○※3 |
92 |
入出力文の妥当でない使い方によって実行が不成功になった。
|
○ (1.,および3.の場合だけ) |
○※4 |
|
93 |
次の場合のどちらかである。
|
× |
○ (1.の場合だけ) |
|
98 |
該当せず。 |
出力モード指定,または不定ファイルに対応する入出力両用,拡張モード指定のOPEN文を実行しようとしたが,ファイルがなかった。 |
× |
|
99 |
入出力文(OPEN文,CLOSE文を除く)を実行しようとしたが,該当レコードはすでに使用されている。 |
× |
○ |
- (凡例)
-
○:標準仕様と同じ
×:値は返されない
−:該当しない
- 注※1
-
2.,および次の場合に該当する。
-
ファイルオープン時に指定した最大のレコードより大きい,または最小のレコードより小さいレコードを書き出そうとした,または書き換えようとした。
-
- 注※2
-
1.〜6.,および次の場合に該当する。
-
副レコードキーの個数が,98を超えている。
-
データが不正である。
-
- 注※3
-
1.,2.,4.,5.,6.,7.,8.,および次の場合に該当する。
-
サービスルーチンに指定したパラメタインタフェース領域に誤りがある。
-
サービスルーチンで取り扱えないファイル名を指定した。
-
COBOL実行時ライブラリが組み込まれていない。
-
入出力のためのシステム関数でエラーが発生した。
-
- 注※4
-
2.,3.,および次の場合に該当する。
-
指定できないファイル編成,およびアクセス法でCBLSTARTサービスルーチンを実行した。
-
指定できないファイル編成,およびアクセス法でNEXT指定のCBLREADサービスルーチンを実行した。
-
指定できないファイル編成,およびアクセス法でKEY指定のCBLREADサービスルーチンを実行した。
-
指定できないファイル編成でCBLDELETEサービスルーチンを実行した。
-
順ファイルに対してLOCK MODE MANUALの指定をした。
-
開かれていないファイルに対してCBLWDISKサービスルーチンを実行した。
-