ILE COBOL 解説書

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

NULL-KEY-MAP IS 句

ID-2 に指定された値に従って、START 操作のためのレコードのヌル・キー・マップを指定します。 ID-2 はブール項目または英数字項目でなければなりません。

ID-2 は、添え字を付けたり、参照変更できます。

ファイルに代替キーがある場合、ID-2 は、参照の現行キーのヌル・キー・マ ップに関連しています。

この句は、ALWNULL 属性をもち、ASSIGN 文節で DATABASE が指定された装置タイプのファイルにだけ指定できます。 キー・フィールドの 1 つがヌル可能で、NULL-KEY-MAP 句が使用されない場合は、すべてのブール・ゼロをもったヌル・キー・マップが使用されます。

NULL-KEY-MAP IS 句の例

この例では、以下の値はファイルの中のキーを表しており、これにはそれぞれが 2 バイトでできた 3 個のフィールドが入っています。 キーは、ファイル・セクションで以下のコードによって定義されます。

INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT FILE-1 ASSIGN to DATABASE-FILE1-ALWNULL
    ACCESS is DYNAMIC RECORD KEY IS FULL-PRODUCT-CODE IN FILE-1
    ORGANIZATION IS INDEXED.
FD FILE-1.
01 FULL-PRODUCT-CODE.
   05 TYPE-CODE      PIC X(2).
   05 COLOR-CODE     PIC X(2).
   05 LOCATION-CODE  PIC X(2).
WORKING-STORAGE SECTION.
01 FILE1-N.
   05 FULL-PRODUCT-CODE-NKM.
      06 FILLER             PIC X VALUE ZERO.
      06 COLOR-CODE-NF      PIC 1 VALUE B"0".
      06 LOCATION-CODE-NF   PIC 1 VALUE B"0".

フィールド 2 および 3 はヌル可能フィールドであり、&nexists. はヌルを示し、xx は任意の値を示します。 以下は、ファイルの中のレコードを表しています。

NN&nexists.&nexists.&nexists.&nexists.
NN&nexists.&nexists.xx
NNxx&nexists.&nexists.

以下の START ステートメントを考えてみます。

  START FILE-1
      NULL-KEY-MAP IS FULL-PRODUCT-CODE-NKM
      INVALID KEY DISPLAY "No data in system for product code " TYPE-CODE
      GO TO ERROR-ROUTINE
      END-START. 

START ステートメントのヌル・キー・マップの値が 010 の場合は、 ポインターはキー NN&nexists.&nexists.xx をもったレコードを指すように設定されます。 START ステートメントのヌル・キー・マップの値が 011 の場合は、 ポインターはキー NN&nexists.&nexists.&nexists.&nexists. をもったレコードを指すように設定されます。

ヌル可能フィールドの使用についての詳細は、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」を参照してください。

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


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