キー・ブレイクを簡単に判断できるか?  単一ファイルでのキーの重複チェックは行えるか?

Document created by Masaaki_Iyama Employee on Jun 19, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC000998

製品名: CA-Easytrieve Plus

バージョン: R6.0以上

OS: z/OS, MSP, VOS3

 

Question

キー・ブレイクを簡単に判断できるか?

単一ファイルでのキーの重複チェックは行えるか?

 

Answer

キー・ブレイクを判断するキーワードを使用します。

マッチング・ファイル処理で使用するキーの重複を判断するIFステートメントを使用します。この機能では、単一ファイル処理においても、あるレコードのキーフィールドの内容と次のレコードのキーフィールドの関係を判定することができます。

 

[キー・ブレイクを判断するIFステートメントの記述]

IF     [NOT]      DUPLICATE       ファイル名

                      FIRST-DUP

                      LAST-DUP

 

DUPLICATE : キーが重複しているかどうか判断

 FIRST-DUP : キーの重複の1件目かどうか判断

 LAST-DUP : キーの重複の最後かどうか判断

 ファイル名 : 対象ファイルを指定

 

単一ファイルにおいて上のIFステートメントを使用する場合のJOBステートメントでの入力ファイルの指定は以下のとおりです。

[JOB  INPUTステートメントの記述]

JOB  INPUT  ( ファイル名  KEY  ( キー・フィールド名-1   キー・フィールド名-2 ....   キー・フィールド名-n ))

注意 この機能はバージョン6.0から使用可能です。バージョン5以下では、使用できませんのでダミーマッチングで対応します。

 

記述例

(例) 新しいキーの始まりを判断する

  FILE   FILEA

     CODE     1       3    A

             ~

  FILE  MASTER   VS

     MCODE  1       3    A

     NAME     5     15    A

*

  W-NAME    W  15  A    RESET

  JOB  INPUT  (FILEA   KEY(CODE))

  IF  FIRST-DUP  FILEA  OR  NOT  DUPLICATE  FILEA

        READ  MASTER  KEY  CODE  STATUS

        IF  MASTER:FILE-STATUS   ZERO

             W-NAME  =  NAME

        END-IF

  END-IF

  PRINT

      ~

                                           

この例では、キーが重複していないレコード( NOT DUPLICATE )か、重複している場合には1件目のレコード ( FIRST-DUP )がIFステートメントを満足します。

  

Attachments

    Outcomes