Previous 環境部 データ部 - ファイルおよびデータ記述 Next

第 7 章 : データ部

7.1 一般記述

データ部には、実行機能単位 が入力用として受けるデータ、または出力用として計算、作成、生成するデータを記述する。

以下にデータ部内の節の一般形式を示す。ここで、原始要素内で呼ばれる順序が定義される。

一般形式

報告書節については、言語リファレンス - 追加トピック報告書作成の章で解説する。他の節は、この章の以下の節で解説する。

7.2 ファイル節

ファイル節の中では、ファイル記述項(FD)が構造上一番高い位置を占める。FILE SECTION見出しの後ろにファイル記述項が続く。ファイル記述項は、レベル指示語(FD)とファイル名と一連の独立した句から構成される。FD句には、論理レコードおよび物理レコードの大きさ、ファイルの外部名、ファイルを構成するデータレコードの名前を指定する。項目は終止符を付けて終了する。

SDファイル記述は、整列ファイルまたは併合ファイルの大きさとデータレコードの名前に関する情報を指定するためのものである。整列ファイルおよび併合ファイルに関しては、利用者が制御できるラベル手続きはない。また、ブロック化および内部記憶のされ方は、SORT文およびMERGE文に固有である。

ファイル記述項および整列併合ファイル記述項に含まれ得る要素は、データ部 - ファイルおよびデータ記述の章で定義されている。

7.2.1 整列併合との関係

整列併合機能単位は、データ部内の表の要素を整列させる機能を備えている。SORT文およびMERGE文のUSING指定およびGIVING指定の対象とするファイルは、ファイル管理段落中に明示的にまたは暗黙的に、順編成で順呼出し法のファイルとして記述しておく。整列併合ファイル記述中に指定するファイルに対しては、入出力文を実行してはならない。

SORT文およびMERGE文のUSING指定およびGIVING指定の対象とするファイルは、ファイル管理段落中に明示的に、索引編成または相対編成をとるものと記述できる。その呼出し法は、順呼出しにも動的呼出しにもできる。

7.2.2 レコード記述の構造

レコード記述は、個々のレコードの特性を記述するデータ記述項の組から構成される。各データ記述項は、レベル番号と、必要ならばデータ名と、必要に応じて一連の独立した句から構成される。レコード記述は階層構造をとる。したがって、後ろに下位の記述が続くか否かによって、記述する句の形態は大幅に異なることがある。レコード記述の構造は、COBOLの概念 の章のレベルの概念節に定義してある。また、レコード記述に含まれ得る要素については、データ部 - ファイルおよびデータ記述の章で定義されている。

7.3 作業場所節

作業場所節(working-storage section)は、節の見出しで始まる。その後ろに、独立データ項目用のデータ記述項やレコード記述項を書く。データ記述項の構文は、データ部 - ファイルおよびデータ記述の章で定義されている。

作業場所節の各レコード名および独立項目名は一意とする。それらは修飾できないためである。レコードに従属するデータ名は、修飾することによって一意にできる場合、一意である必要はない。

データ名またはレコード名が参照されることがない場合、修飾して一意にしなくてもよい。

一般形式

構文規則

  1. 作業場所節は、関数定義またはプログラム定義で指定できる。クラス定義中では、ファクトリ定義またはインスタンス定義で定義しなければならず、メソッド定義で定義してはならない。また、インターフェイス定義で指定してはならない。

7.3.1 独立作業場所 (77レベル記述項)

作業場所節に置く項目や定数のうち、相互に階層関係がなくさらに細分する必要もないものは、レコードにまとめる必要はない。この場合には、独立基本項目として、別々のデータ記述項に定義する。このレベル番号には特別の77という値が割り当てられている。データ記述項の構文は、データ部 - ファイルおよびデータ記述の章で定義されている。

各データ記述項には、下記の要素を書く。

7.3.2 作業場所レコード (レコード記述項)

作業場所節に置くデータ項目のうち、相互に階層関係があるものは、レコードにまとめておく。その際、レコード記述の書き方の規則に従う必要がある。ファイル節のレコード記述用のすべての句は、作業場所節のレコード記述にも使用できる。

7.3.3 レコード記述の構造

レコード記述(record description)は、レコードの特徴を記述する一連のデータ記述項から構成される。各データ記述項(data description entry)の先頭にはレベル番号を書く。

必要があれば、

その後ろにデータ名またはFILLER句を書く。さらにその後ろに、必要に応じて、独立の句をいくつか書く。レコード記述は階層構造をとる。したがって、1つの記述項(entry)に適用する句は、それに従属する記述項があるかないかによって、かなり違ってくる。レコード記述の構造とレコード記述項内に書ける要素については、COBOLの概念 の章のレベルの概念節およびデータ部 - ファイルおよびデータ記述の章に説明してある。

7.4 スレッド局所記憶節

機能

スレッド局所記憶節は、各スレッドで一意であり、すべての呼出しにおいて持続するデータを記述する。このデータには、このデータの初期値は、VALUE 句 を使用して与えTる。データ記述項の構文は、データ部 - ファイルおよびデータ記述の章で定義する。

スレッド局所記憶域は、スレッドごとの作業場所とみなしてもよい。こうすると、ほとんどの再入プログラムの競合問題を解決するときに便利である。多くの場合、ファイル操作を行わないプログラムは、単に作業場所節見出しをスレッド局所記憶節見出しに変更するだけで、完全に再入プログラムにすることができる。

一般形式

構文規則

  1. EXTERNAL句は使用できない。

一般規則

  1. スレッド局所記憶域にある各データ項目はコピーされ、実行中のプログラムに入力される新しいスレッドごとに初期状態に設定される。データ項目を認識できるのは、それを実行するスレッドのみである。データ項目は、そのスレッドの実行が終了した地点、またはプログラムにCANCEL文が実行された時点で、削除される。そうでない場合、そのスレッドで次にそのプログラムが呼ばれた時点では、データ項目は最後に使用されたときの状態である。

  2. シングルスレッド環境では、スレッド局所記憶域は作業場所とまったく同じ動作をする。

7.5 オブジェクト記憶節

オブジェクト記憶節は、必要に応じてデータ部中で使用する節で、これにより、クラスオブジェクトデータおよびインスタンスオブジェクトデータを宣言することができる。

形式

構文規則

  1. クラスオブジェクトのオブジェクト記憶節で宣言されたデータは、クラスメソッドでのみアクセス可能である。

  2. オブジェクトプログラムのオブジェクト記憶節で宣言されたデータは、インスタンスメソッド中でのみアクセス可能である。

  3. クラス名段落中でDATA IS RESTRICTEDまたはDATA IS PROTECTEDが指定されている場合は、オブジェクト記憶節で宣言されたデータは、下位のクラス中で直接アクセス可能である。そうでない場合、起動するメソッド以外は、このデータにアクセスできない。

  4. オブジェクト記憶節で宣言されたデータの構文規則は、連絡節のものと同じである。ただし、ODOSLIDEコンパイラ指令が指定されているときに、OCCURS句にDEPENDING ON 指令を使用してはならない。

一般規則

  1. オブジェクト記憶節で宣言されたデータは、その下位のクラスに継承させることができる。

  2. 新しいインスタンスオブジェクトのそれぞれに対し、オブジェクト記憶節で宣言されたデータ項目用の、一意の記憶域が割り当てられる。

  3. コンパイラ指令、OOCTRL(+W)が指定されているときは、作業場所節がオブジェクト記憶節として扱われる。

7.6 局所記憶節

機能

プログラムが呼ばれるたびに、局所記憶節の写しが別途作られる。作られた局所記憶節の写しは、そのプログラムが呼ばれている間だけ、存在する。局所記憶節は、再帰型のプログラム呼出しのために特に用意されたものである。

局所記憶節(local-storage section)は、節の見出しで始まる。その後ろに、独立データ項目用のデータ記述項やレコード記述項を書く。局所記憶節の各レコード名および独立項目名は一意とする。それらは修飾できないためである。レコードに従属するデータ名は、修飾することによって一意にできるならば、一意である必要はない。データ記述項の構文は、データ部 - ファイルおよびデータ記述の章で定義されている。

データ名またはレコード名が参照されることがない場合、修飾して一意にしなくてもよい。

一般形式

構文規則

  1. EXTERNALデータは使用できない。

  2. GLOBALデータは使用できない。

  3. 「CALL ... USING局所データ項目」という構文は使用できる。

  4. 「ENTRY ... USING局所データ項目」という構文は使用できない。

  5. 「PROCEDURE DIVISION ... USING局所データ項目」という構文は使用できない。

  6. 入れ子になったプログラムの中では、LOCAL-STORAGE SECTION見出しは使用できない。

  7. COBOLシステムは、プログラムに局所記憶節がある場合にだけプログラムの再帰を行う。局所記憶節内にレコードが存在する必要はない。局所記憶節の見出しがないと、実行時に再帰処理が受け入れられない。詳しくは、翻訳集団の概念の章の共通プログラム、初期プログラム、および再帰プログラム節を参照。

一般規則

  1. DEFAULT-BYTE コンパイラ指令は、局所記憶節内で定義した項目には適用できない。
  1. VALUE句を書くことができるが、注記にとどまる。

    VALUE句は、データ部 - ファイルおよびデータ記述の章のVALUE(値)句節の解説に従い、データ項目を初期化する。

7.7 連絡節

以下の説明において、手続き部のUSING句に触れている箇所はすべて、ENTRY USINGにも当てはまる。

手続き部 - SEARCH - WRITEの章のSET(設定)文節に記述されている場合は例外として、

プログラム中の連絡節(linkage section)が意味をもつのは、呼ぶプログラムからCALL文にUSING句を指定して、実行用プログラムが呼ばれた場合だけである。

連絡節はメソッドにおいて常に意味を持つ。

呼ばれるプログラムの連絡節に指定した正式なパラメータと戻される項目は、制御が移された時に、その呼ばれるプログラムと呼ぶプログラムの両方から参照される。

このようなデータは、ファイル節にも作業場所節にも記述できる。

連絡節に記述されているデータ項目に対して、そのプログラムの中では領域は割り当てられない。これらのデータ項目を手続き部で参照すると、呼ぶプログラムの中で実行時に使用している場所を参照することになる。指標名については、そのような対応は付けられない。呼ぶプログラム中の指標名と呼ばれるプログラム中の指標名は、常に別の指標を参照する。

連絡節の中で定義されているデータ項目を、呼ばれるプログラムの手続き部の中で参照できるのは、そのデータ項目が手続き部の見出しのUSING句の作用対象に指定されるか、またはその作用対象に従属するかし、かつ実行用プログラムがUSING句を伴うCALL文の制御下にある場合だけである。

連絡節の構造は先に述べた作業場所節と同じである。つまり、節の見出しで始まり、その後ろに独立データ項目のデータ記述項やレコード記述項が続く。データ記述項の構文は、データ部 - ファイルおよびデータ記述の章で定義されている。

連絡節内の各レコード名および独立項目名は呼ばれるプログラムの中で一意とする。

これらの名は、手続き部の中で参照されていない場合は、一意である必要はない。

連絡節に置くパラメータと戻される項目の指定は、手続き部の章のパラメータと戻り項目の適合節に記述された内容に従わなければならない。

7.7.1 独立連絡場所

連絡節に置く項目のうち、相互に階層関係のないものは、レコードにまとめる必要はない。この場合には、独立基本項目として、別々のデータ記述項に定義する。データ記述は特別のレベル番号である77から始まる。

各データ記述項には、下記の要素を書く。

7.7.2 連絡レコード

連絡節に置くデータ項目のうち、相互に階層関係があるものは、レコードにまとめる。その際、レコード記述の書き方の規則に従う必要がある。入力レコードまたは出力レコードを記述するために使用する句のすべてを、連絡節でも使用できる。

7.8 画面節

画面節は、ACCEPT文およびDISPLAY文と併用する画面処理機能を提供する。以下を行うことができる。

画面節は、形式 4のACCEPT操作または形式 2のDISPLAY操作がアクセスする画面の各項目の記述を含む。これらの項目は、画面項目と呼ばれる。画面項目の多くは、画面の一部での項目の配置のみを記述し、明示的に参照されることはない。

画面節は、以下の操作を可能にする構文を含む。

この構文は、データ部 - 画面節の章で定義する。

データ記述項は、固定方式または自由方式により、数字画面項目または数字編集画面項目となる。利用者インターフェイスについて詳しくは、COBOLシステムのマニュアルを参照。

固定方式は、データ記述項を数字画面項目または数字編集画面項目にする際の初期方式である。この方式により、入力されたデータが形式を整えられ、画面に反映される。また、キーが押されるにつれ、項目の仕様の条件に従って、カーソルを動かす。数字以外の文字、"+", "-"、および小数点は拒否される。カーソルが前後に移動する際は、編集項目の挿入記号はとばされる。符号指示子は通常の使用に従って変更される。浮動記号は項目内を左右に移動し、挿入記号は、数字が挿入されれば現れ、削除されれば消える。カーソルが項目の最後の位置に達した後に入力された文字は、最後の文字に上書きされる。

自由方式は、データ記述項を数字画面項目または数字編集画面項目にする際の別の方式である。固定方式が初期方式である。自由法式では、適切な長さのPIC X項目にデータを入力でき、カーソルが項目を離れたときに初めて、仕様に従ってデータの形式が整えられる。カーソルが項目から離れると、数字、記号、小数点以外の文字はすべて無視される。その後、通常のCOBOLでの、画面項目または作業場所項目と同じ形式の項目へのMOVEの規則に従って、数値の抽出、保管、形式の変更が行われる。この数値は通常、この後で画面に反映される。使用可能な利用者インターフェイスの設定方法の詳細については、COBOLシステムのマニュアルを参照。

機能

画面節は、ACCEPT文およびDISPLAY文と併用する画面処理機能を提供する。

一般形式

構文規則

  1. 画面節は、データ部の最後の節でなければならない。

  2. 画面記述項は、画面記述句を含む。画面節で使用できるデータ記述句は、一般形式で示したもののみに制限される。

一般規則

画面節は、形式 4のACCEPT操作または形式 2のDISPLAY操作がアクセスする画面の各項目の記述を含む。これらの項目は、画面項目と呼ばれる。画面項目の多くは、画面の一部での項目の配置のみを記述し、明示的に参照されることはない。


Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標および商品名は国際法によって保護されています。


Previous 環境部 データ部 - ファイルおよびデータ記述 Next