![]() | ファイル構造 | ファイル処理の制限 | ![]() |
この章では、ファイル状態で返すことができるすべての値を列挙します。 ファイル構造の説明とその使用法については、『ファイル状態』の章を参照してください。
特に指定しない限り、各ファイル状態コードは、どのアクセスモードのどのファイル構造の操作でも受け取ることができます。ANSI'74、ANSI'85 および 拡張ファイル状態コードは、『エラーメッセージ』に記載されています。以降の項では、 RM/COBOL ファイル状態コードと Microsoft V2 ファイル状態コードを列挙します。
上記のファイル状態規則の他に、より詳細な拡張ファイル状態コードを作成することができます。拡張ファイル状態コードの形式は、以下のとおりです。
9/nnn
この nnn
はバイナリの (COMP-X) 番号で、ランタイムエラー番号と同等です。
ランタイムエラーについては、『エラーメッセージ』の『ランタイムシステムメッセージ』の章で説明します。
例えば、ファイルをディスクに書き込んで、ディスク領域が足りなくなった場合は、ANSI'74 ファイル状態は 30 になります。このファイル状態が、Permanent error - no other information is available というエラーメッセージに変換されます。このエラーメッセージは非常に一般的です。permanent error は、ディスクが故障した、またはディスクドライブのカバーが開いていることを示しています。そのため、この COBOL システムでは、一般的なファイル状態を返すのではなく、9/007 の拡張ファイル状態を返します。
ANSI'74 または ANSI'85 ファイル状態コードを使用しており、拡張ファイル状態が通常返される内容よりも具体的である場合は、ランタイムシステムが拡張状態コードを返します。
特に指定しない限り、各ファイル状態コードは、どのアクセスモードのどのファイル編成の操作でも受け取ることができます。
'74 |
'85 |
説明 |
|
---|---|---|---|
00 | 00 | 実行が成功したことを示します。 | |
02 | 02 | 索引ファイルのみ。 次の 2 つのうちの 1 つに該当します。
|
|
00 | 04 | 処理中のレコード長さが、そのファイルの固定ファイル属性に一致しません。 | |
00 | 05 | 参照されているオプションのファイルが、OPEN 文が実行された時点では存在していません。 | |
00 | 07 | 順ファイルのみ。REEL/UNIT 句 をもつ OPEN または CLOSE 文の場合は、参照ファイルは非リールまたはユニット媒体です。 | |
10 | 10 | 次の論理レコードがありません。 ファイルの終わりに達成しています。 |
|
14 | 相対ファイルのみ。 相対レコード番号の有効な桁数は、そのファイルに記述されている相対キーデータ項目のサイズよりも大きくなっています。 |
||
21 | 21 | 順アクセスファイルのみ。 順序エラーを示します。連続するレコードキー値の昇順キー要件に違反しているか、主レコードキー値が、そのファイルの READ 文の正常な実行と次の REWRITE 文の実行の間に COBOL プログラムによって変更されました。 |
|
22 | 22 | 索引ファイルと相対ファイルのみ。 重複キーの状況を示します。索引または相対ファイル、あるいは重複が許可されていない重複副レコードキーで重複キーを作成するレコードを格納しようとしています。 |
|
23 | 23 | レコードが見つからないことを示します。 キーで識別されるレコードにアクセスしようとしましたが、そのレコードはファイルに存在していません。 または、START または READ 操作を、存在しないオプションの入力ファイルで実行しようとしています。 |
|
24 | 24 | 相対ファイルおよび索引ファイルのみ。 次の状況の 1 つから発生する境界違反を示します。
|
|
I/O 文は、順ファイルの境界違反または、データチェックパリティエラーや送信エラーなどの入出力エラーの結果、正常に実行されませんでした。 | |||
30 | |||
34 | 境界違反のため、 I/O 文は失敗しました。 この状況は、外部的に定義された順ファイルの境界を超えて書き込みしようとしていることを示します。 |
||
35 | I-O、INPUT または EXTEND 句をもつ OPEN 操作を、存在しない非 OPTIONAL ファイルで実行しようとしています。 | ||
37 | OPEN 操作を、OPEN 文で指定したオープンモードをサポートしないファイルに対して実行しようとしています。 | ||
38 | OPEN 操作を、ロックを使用して閉じたファイルに対して実行しようとしています。 | ||
39 | 固定ファイル属性と、プログラムでそのファイルに指定した属性の間に競合が検出されました。 | ||
41 | すでに開かれているファイルに対して OPEN 操作を実行しようとしています。 | ||
42 | すでに閉じられているファイルに対して CLOSE 操作を実行しようとしています。 | ||
43 | 順アクセスモードのファイル。 DELETE または REWRITE 文を実行する前に、ファイルで最後に実行された I/O 文が READ 文ではありません。 |
||
44 | 境界違反があります。次の境界違反の可能性があります。
|
||
46 | 連続する READ 操作を、INPUT または I-O モードで開いたファイルに実行しようとしましたが、次に有効なレコードが設定されていません。 | ||
47 | READ または START 操作を、INPUT または I-O で開いていないファイルに実行しようとしています。 | ||
48 | WRITE 操作を、OUTPUT、I-O、または EXTEND モードで開いていないファイル、あるいは順アクセスモードの I-O で開いたファイルに実行しようとしています。 | ||
49 | DELETE または REWRITE 操作を、I-O で開かれていないファイルに実行しようとしています。 | ||
9/nnn | 次に示す拡張ファイル状態コード。 | ||
RT001 バッファスペースが足りない メモリ不足の状況を示す場合もあります。 RT002 アクセス時にファイルが開かれていない RT003 逐次モードエラー RT004 違法なファイル名である RT005 違法なファイル名である RT006 INPUT モードで開かれたファイルに書込もうとしている RT007 ディスク空間がない RT008 OUTPUT モードで開かれたファイルから入力しようとしている RT009 ディレクトリに領域がない (または、ディレクトリは存在しません) RT010 ファイル名を指定していない RT012 すでに開かれているファイルを開こうとしている |
|||
35 | RT013 ファイルが見つからない RT014 同時に開くことのできるファイルの制限数を越えている RT015 開くことのできる索引ファイルの制限数を越えている RT016 開くことのできる装置ファイルの制限数を越えている RT017 レコードエラー:レコード長がゼロの可能性がある RT018 レコード部分読みエラー: EORの前にEOFがあるかオープンモードの誤り RT019 再書出しエラー: オープンモードかアクセスモードに誤りがある RT020 装置または資源が使用中である RT021 ファイルの代りにディレクトリが指定されている RT022 違法または不可能なアクセスモードで開かれている RT023 違法または不可能なアクセスモードで閉じられている RT024 ディスク入出力エラー RT025 オペレーティングシステムデータエラー RT026 ブロック I-O エラー |
||
35 | RT027 装置が使用できない RT028 装置に空領域がない RT029 開かれているファイルを削除しようとしている RT030 ファイルシステムは読込み専用である RT031 ファイルの所有者ではない RT032 索引ファイルが多すぎる. または処理の確認ができない |
||
30 | RT033 ハードウェア I-O エラー |
||
30 | RT034 アクセスモードかファイル記述項の指定に誤りがある | ||
37 | RT035 正当な許可なく、ファイルにアクセスしようとしている RT036 ファイルはすでに存在している RT037 ファイルアクセスが拒否されている RT038 ディスクに互換性がない RT039 ファイルに互換性がない RT040 各国語Variant が正しくインストールされていない RT041 索引ファイルが破壊されいる RT042 壊れたパイプに書き込もうとしている RT043 索引ファイルにファイル情報がない RT045 適合しないプログラムで NLS ファイルを開こうとしている RT047 索引構造がオーバフローしている (重複キーの最大数に到達したことを示す場合もあります。) RT065 ファイルがロックされている RT066 索引ファイルに重複レコードキーを追加しようとしている RT068 レコードはロックされている RT069 ISAM モジュールに違法な引数を使用している RT070 開くことのできる索引ファイルの制限数を越えている RT071 索引ファイルの形式に誤りがある RT072 索引ファイルの終りである RT099 SORT/MERGE モジュールでの不正な操作 |
||
37 | RT100 無効なファイル操作である RT104 ファイル操作で空白のファイル名を使用している RT105 メモリ割り当てエラー RT138 ファイルはロックモードでクローズされている - 開くことができない |
||
39/44 | RT139 レコード長またはキーデータが矛盾している | ||
41 | RT141 ファイルは既に開かれている - 再度開くことができない | ||
42 | RT142 ファイルを開かれていない - 閉じることができない | ||
43 | RT143 順呼出しで REWITE/DELETE の前の READ が成功していない | ||
46 | RT146 順読み込みに対して現レコードが定義されていない | ||
47 | RT147 READ/START のオープンモードかアクセスモードが誤りである RT148 WRITE のオープンモードかアクセスモードが誤りである RT149 REWRITE/DELETE のオープンモードかアクセスモードが誤りである RT161 ファイルヘッダーが見つかりません。 RT169 ファイルはストライプ化されていますが、extfh.cfg の MAXSTRIPEFILES は許可された範囲を超えています。 RT173 呼び出すプログラムがドライブ/ディレクトリ内に見つからない RT188 ファイル名が長すぎる |
||
34 | RT194 ファイルのサイズが大きすぎる RT195 DELETE または REWRITE の前に READ が実行されていません。 |
||
14 | RT196 相対または索引ファイルのレコード番号が大きすぎる | ||
38 | RT210 ファイルはロックモードで閉じられている |
||
38 | RT213 レコードのロック数が多すぎる RT218 複数リール/ユニットファイルに誤りがある RT219 共有ファイルがオペレーティングシステムの制限数を越えている |
RM/COBOL ファイル状態コードは、ANSI'74 ファイル状態コードであるか、次に示すように、拡張ファイル状態コードにマップすることができます。
状態 キー 1 |
状態 キー 2 |
参照コード |
説明 |
---|---|---|---|
9 | 0 | 9/143 | READ を正常に実行した後に REWRITE または DELETE は実行できません。 |
9/147 | READ または START に対する無効なオープンまたはアクセスモードです。 | ||
9/148 | WRITE に対する無効なオープンまたはアクセスモードです。 | ||
9/149 | REWRITE または DELETE に対する無効なオープンまたはアクセスモードです。 | ||
1 | 9/142 | ファイルは開かれていません。閉じることができません。 | |
2 | 9/141 | ファイルはすでに開いているため、開くことはできません。 | |
3 | 9/138 | ファイルはロックして閉じられているため、開くことはできません。 | |
9/210 | ファイルはロックして閉じられています。 | ||
4 | 9/013 | ファイルが見つかりません。 | |
9/035 | アクセス権が無効です。 | ||
9/037 | ファイルのアクセスが拒否されました。 | ||
9/139 | レコード長またはキーが一致しません。 | ||
9 | 4 | 9/188 | ファイル名が大きすぎます。 |
6 | 9/146 | 順読み取りには現在のレコードが定義されていません。 | |
8 | 9/071 | 索引ファイルの形式が無効です。 | |
9 | 9/065 | ファイルはロックされています。 | |
9/068 | レコードはロックされています。 |
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。
![]() | ファイル構造 | ファイル処理の制限 | ![]() |