前ページへファイル構造 ファイル処理の制限次ページへ

第 15 章 ファイル状態コードテーブル

この章では、ファイル状態で返すことができるすべての値を列挙します。 ファイル構造の説明とその使用法については、『ファイル状態』の章を参照してください。

特に指定しない限り、各ファイル状態コードは、どのアクセスモードのどのファイル構造の操作でも受け取ることができます。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 ファイル状態コードを使用しており、拡張ファイル状態が通常返される内容よりも具体的である場合は、ランタイムシステムが拡張状態コードを返します。

特に指定しない限り、各ファイル状態コードは、どのアクセスモードのどのファイル編成の操作でも受け取ることができます。

15.1 メッセージのリスト

'74
'85
説明
00 00 実行が成功したことを示します。
02 02 索引ファイルのみ。

次の 2 つのうちの 1 つに該当します。
  • READ 文の場合は、現在のキーのキー値が、参照の現在のキーの次のレコードの同じキーの値と同等です。
  • WRITE または REWRITE 文の場合は、書き込まれたレコードにより、重複が許可されている 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 つから発生する境界違反を示します。
  • 外部で定義されたファイルの境界を超えて書き込みをしようとしています。

  • 連続する WRITE 操作を相対ファイルで実行しようとしましたが、相対レコード番号の有効な桁数が、ファイルに記述されている相対キーデータ項目のサイズよりも大きくなっています。
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 境界違反があります。次の境界違反の可能性があります。
  • 関連ファイルの RECORD IS VARYING 句で許可されている最大レコードまたは最小レコードよりも大きいまたは小さい WRITE または REWRITE レコードに対して実行しようとしています。

  • ファイルに対してレコードを REWRITE しようとしましたが、レコードのサイズが、置き換えられるレコードのサイズと異なります。
  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 共有ファイルがオペレーティングシステムの制限数を越えている

15.1.1 RM/COBOL ファイル状態コード

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.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。

前ページへファイル構造 ファイル処理の制限次ページへ