ILE COBOL 解説書

データ編成

COBOL プログラムのデータ編成には次のものがあります。

順次編成

ファイル内にレコードが置かれる物理的順序が、レコードの順序を決定します。 ファイルのレコード間の関係は、ファイルが拡張されない限り、変わりません。 キーはありません。データベース・ファイルおよび装置ファイルの両方が順次編成にできます。

ファイル内の各レコードには、最初のものを除いて、固有の先行レコードがあり、また最後のレコード以外の各レコードには、固有の後続レコードがあります。

相対編成

このファイルは、おのおのが 1 つのレコードを持つレコード域がいくつか順に並んでいるものと考えることができます。 各レコード域は相対的なレコード番号で識別されますが、アクセス方式の場合、その相対レコード番号に基づいてレコードを保管したり取り出したりします。 たとえば、最初のレコード域は相対レコード番号 1 でアドレスされ、10 番目のレコード域は相対レコード番号 10 でアドレスされます。 相対ファイルは DISK または DATABASE に割り当てなければなりません。

表 8には、相対出力ファイルに影響する条件が要約されています。


表 8. 相対出力ファイルの初期設定

ファイル・アクセスおよび CL 指定 オープン時の条件 クローズ時の条件  ファイル境界
順次 *INZDLT   書き出されないレコードが初期設定される 全増分
順次 *INZDLT *NOMAX サイズ   CLOSE は正常に完了ファイル状況は 0Q 書き込まれたレコードの境界まで
順次 *NOINZDLT     書き込まれたレコードの境界まで
ランダムまたは動的 レコードは初期設定されるファイルはオープンされている   全増分
ランダムまたは動的 *NOMAX サイズ OPEN は失敗ファイル状況は 9Q   ファイルは空

9Q のファイル状況から回復するためには、関連する実行時メッセージ・テキストに記述されているとおりに、CHGPF (物理ファイル変更) コマンドを使用してください。

相対レコード番号処理は、物理ファイルまたは、ただ 1 つの物理ファイルに基づいている論理ファイルに使用できます。

ファイル境界の拡張

ファイルの作成後に、ファイル・サイズを拡張できます。 ファイルのファイル状況として 0Q を受け取ったら、その処理を行う前にさらにレコードをそのファイルに追加することが必要な場合があります。 INZPFM (物理ファイル・メンバー初期設定) コマンドを使えば、削除済みレコードをそのファイルに追加できます。

たとえば、10 000 のレコードのファイルを作成してから、毎回 1 000 のレコードを 3 回増分するとします。

  1. レコード (最初の 10 000) を初期設定します。
  2. さらに多くのデータを保管する必要が生じます。 そこで、RECORDS(*DLT) オプションを指定して INZPFM コマンドを再度実行し、13 000 のレコードをすべて初期設定します。
  3. そのうえ、さらにデータを保管する必要が生じますが、13 000 のレコードはすべて使いきっています。 もう一度 INZPFM コマンドを実行すると、次のうちのいずれかを行うよう求める対話式エラー・メッセージ (重大度 99 の) を受け取ります。
    1. INZPFM 要求を取り消す
    2. 要求を継続する (つまり、次の 1 000 のレコードを初期設定する)
  4. 上記のステップの 2 番目のオプションを選択すると、全部で 14 000 のレコードが初期設定されます。 このようにして、それ以前に定義された最大値以上にファイル・サイズを拡大します。

索引編成

ファイル中の各レコードには、索引に関連付けられた埋め込みキー (キー・データ項目と呼ばれます) があります。 各索引はそれに関連する埋め込みレコード・キー・データ項目の内容に従って、データ・レコードへの論理パスを提供します。 データベース・ファイルと DISK ファイルのみを索引編成にできます。

レコードの挿入、更新、または削除が行われるとき、それらのレコードはその基本キーの値によってのみ識別されます。 基本キー・データ項目名は、FILE-CONTROL 段落の RECORD KEY 文節に指定します。

+----------------------------------IBM 拡張----------------------------------+

OUTPUT 用にオープンされている論理ファイルは、そのベースとなっている物理ファイル内のすべてのレコードを取り除くわけではありません。 そうではなく、ファイルは書き込み操作のみ許されるようにオープンされ、レコードをファイルに追加することができます。

+------------------------------End of IBM 拡張-------------------------------+

+----------------------------------IBM 拡張----------------------------------+

TRANSACTION 編成

ワークステーションおよびデータ通信ファイルは、TRANSACTION 編成にできます。 「WebSphere Development Studio: ILE COBOL プログラマーの手引き」のトランザクション・ファイルの章を参照してください。

+------------------------------End of IBM 拡張-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]