サイトのロゴ opensource COBOL Programmer’s Guide

前へ/目次/次へ

6.1.2. データ名の修飾

COBOLでは、データ名をプログラム内で複製することができ、修飾と呼ばれるプロセスを通じてデータ名の参照を一意にするという方法によって、データ名への参照行うことができる。

動作中の修飾を確認するには、COBOLプログラムで定義された2つのデータレコードの、次のようなセグメントを確認する:

    01 EMPLOYEE.
       05 MAILING-ADDRESS.
          10 STREET             PIC X(35).
          10 CITY               PIC X(15).
          10 STATE              PIC X(2).
          10 ZIP-CODE.
             15 ZIP-CODE-5      PIC 9(5).
             15 FILLER          PIC X(4).
    01 CUSTOMER.
       05 MAILING-ADDRESS.
          10 STREET             PIC X(35).
          10 CITY               PIC X(15).
          10 STATE              PIC X(2).
          10 ZIP-CODE.
             15 ZIP-CODE-5 PIC 9(5).
             15 FILLER PIC X(4).

それでは、従業員の輸送先住所のCITYの部分を「Philadelphia」に設定してみる。明らかにコンパイラは、参照している2つのCITY項目のどちらかを判別できなくなるため、以下の例は機能しない:

        MOVE “Philadelphia” TO CITY.

この問題を解決するために、CITYの参照を次のように修飾できる。

        MOVE “Philadelphia” TO CITY OF MAILING-ADDRESS.

残念ながら、どのCITYが参照されているかを具体的に判別するにはまだ不十分である。特定のCITYを正確に判別するには、次のようにコーディングする必要がある。

        MOVE “Philadelphia” TO CITY OF MAILING-ADDRESS OF EMPLOYEE.

これによって、どのCITYが変更されているかについての混乱が生じることはなくなる。しかしもっと簡単な記述にすることもできる。COBOLでは中間の修飾を省略できるため、以下のようなコーディングが可能である。

        MOVE “Philadelphia” TO CITY OF EMPLOYEE.

テーブルへの参照を修飾する場合は次のように記述する。

        一意名-1 OF 一意名-2(添え字・・・)

予約語の「IN」は「OF」の代わりとして使うことができる。

ページトップへ