Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


ファイル編成

ファイルの作成時にデータの編成を決めます。ファイルを作成したら、それ以降、ファイルを拡張することはできますが、 その編成を変更することはできません。

順次編成

ファイルの中にレコードが配置される物理的な順番が、レコードのシーケンスを決定します。 ファイルの拡張はできますが、ファイルの中のレコードの相互関係は変更されません。 レコードは固定長または可変長のどちらも可能であり、キーはありません。

ファイルの中で、最初のレコード以外のレコードには、その先行レコードがそれぞれ一意に決まります。 また最後のレコード以外のレコードには、その後続レコードがそれぞれ一意に決まります。

索引編成

ファイル中の各レコードには、1 つ以上の組み込みキー (キー・データ項目 として参照される) があり、 それぞれのキーは索引に関連しています。 各索引は、それに関連する埋め込みレコード・キー・データ項目の内容に従って、データ・レコードへの論理パスを提供します。索引付きファイルは、 直接アクセス・ストレージのファイルでなければなりません。 レコードは固定長でも可変長でも可能です。

索引付きファイルの各レコードには、 基本キー・データ項目が埋め込まれていなければなりません。 レコードの挿入、更新、または削除が実行される場合、 それらのレコードはその基本キーの値によってのみ識別されます。 したがって、基本キー・データ項目の値はそれぞれ固有な値でなければならず、 レコードの更新時にその値を変更してはなりません。 この基本キー・データ項目の名前は、ファイル制御段落の RECORD KEY 節によって COBOL プログラムに知らせます。

さらに索引付きファイルの各レコードには、 1 つ以上の埋め込み代替キー・データ項目を指定できます。 各代替キーは、検索するレコードを識別する別の方法を提供します。 この代替キー・データ項目の名前は、ファイル制御段落の ALTERNATE RECORD KEY 節によって COBOL プログラムに知らせます。

特定の入出力要求に使用されるキーは、参照キー と呼ばれます。

相対編成

これは、ファイルをそれぞれに 1 つのレコードが含まれているレコード域のストリングとみなします。 それぞれのレコード域は、相対レコード番号で識別されます。 その相対レコード番号に基づいて、アクセス方式によりレコードが格納され検索されます。例えば、最初のレコード域は相対レコード番号 1 でアドレスが指定され、10 番目のレコードは相対レコード番号 10 でアドレスが指定されます。ファイルの中でレコードが配置される物理的なシーケンスは、各レコードが入れられるレコード域とは関係がなく、したがって、各レコードの相対レコード番号とも関係がありません。相対ファイルは、直接アクセス・ファイルでなければなりません。 レコードは固定長でも可変長でも可能です。

行順次編成

行順次ファイルでは、各レコードには、レコード区切り文字で終わる一連の文字が入っています。区切り文字はレコードの長さには数えられません。

レコードの書き込み時には、レコード区切り文字を追加する前に末尾ブランクがあれば 除去されます。レコード域に入っている最初の文字から追加された レコード区切り文字までを含む文字が 1 つのレコードとしてファイルに書き込まれます。

レコードの読み取り時には、以下の条件が発生するまで一度に 1 文字ずつ文字がレコード域に読み取られます。

  • 最初のレコード区切り文字が検出される。 レコード区切り文字は破棄され、レコードの残りにはスペースが埋められます。
  • レコード域全体が文字で満たされる。 最初の未読文字がレコード区切り文字の場合は、 その文字は破棄されます。レコード区切り文字でない場合、最初の未読文字は、 次の READ ステートメントによって読み取られる最初の文字となります。
  • ファイルの終わりが検出されました。レコード領域の残りにはスペースが埋められます。

行順次ファイルに書き込まれるレコードは、USAGE DISPLAY や DISPLAY-1 または DISPLAY と DISPLAY-1 項目の 組み合わせとして記述するデータ項目から構成されている必要があります。 ゾーン 10 進データ項目は、符号なしであるか、符号付きの場合は SEPARATE CHARACTER 句で宣言する必要があります。

行順次ファイルに使用できるのは、印刷可能文字と以下の制御文字だけです。

  • アラーム (X'2F')
  • バックスペース (X'16')
  • 用紙送り (X'0C')
  • 改行 (X'15')
  • 復帰 (X'0D')
  • 水平タブ (X'05')
  • 垂直タブ (X'0B')
  • DBCS シフトアウト (X'0E')
  • DBCS シフトイン (X'0F')

改行文字は、レコード区切り文字として処理されます。他の制御文字は COBOL がファイルにあるレコードのデータの一部として扱います。

行順次ファイルにおいては、次のものはサポートされません。

  • APPLY WRITE-ONLY 節
  • CODE-SET 節
  • DATA RECORDS 節
  • LABEL RECORDS 節
  • LINAGE 節
  • OPEN ステートメントの I-O 句
  • PADDING CHARACTER 節
  • RECORD CONTAINS 0 節
  • RECORD CONTAINS 節フォーマット 2 (例えば、RECORD CONTAINS 100 to 200 CHARACTERS)
  • RECORD DELIMITER 節
  • RECORDING MODE 節
  • RERUN 節
  • RESERVE 節
  • OPEN ステートメントの REVERSED 句
  • REWRITE ステートメント
  • ファイル記述項目の VALUE OF 節
  • WRITE ... AFTER ADVANCING 簡略名
  • WRITE ... AT END-OF-PAGE
  • WRITE ... BEFORE ADVANCING

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)