限界内順次処理

レコード・アドレス・ファイルによる限界内順次処理は、ファイル仕様書の 28 桁目の L で指定され、キー順アクセスが行われるファイルに有効です。

限界内順次処理は、プライマリー、セカンダリー、 または全手順ファイルとして指定した入力または更新ファイルに対して指定することができます。 ファイルは外部記述または、(索引付き) プログラム記述です。 ファイルのキーは昇順でなければなりません。

レコード・アドレス・ファイルを使用してファイルを限界内で順次処理するためには、 プログラムは次のものを読み取ります。

プログラムは、レコード・アドレス・ファイルが終わりになるまで この手順を繰り返します。

限界内順次処理の例

図 173 は、 限界内で順次処理される索引付きファイルの例を示したものです。図 175 は、 プログラム記述ファイルの代わりに外部記述ファイルを使った、同じ例を示します。

図 165 には、プログラム ESWLIM1 (図 173) および ESWLIM2 (図 175) に よって使用される物理ファイルのデータ記述仕様書 (DDS) を示してあります。

プログラム例 1 (限界内順次処理)

EMPMST は、レコード・アドレス・ファイル LIMITS によって 限界内順次 (28 桁目の L) に処理されます。 レコード・アドレス・ファイルからの 限界の各セットは、処理する EMPMST ファイル中 のレコードの低および高の社員番号から構成されています。 社員番号キー・フィールド (ENUM) の長さが 5 桁なので、 限界の各セットは 5 桁のキーから構成されます。(ENUM は パックされた形式なので、5 桁ではなく、3 桁が必要であることに注意してください。)

図 173. 外部記述ファイルの、限界内 順次処理
      *****************************************************************
      *  プログラム名:  ESWLIM1                                       *
      *  関連ファイル:  EMPMST   (物理ファイル)                       *
      *                 LIMITS   (物理ファイル)                       *
      *                 PRINT    (プリンター・ファイル)               *
      *         説明 :  このプログラムは、索引付きファイルの限界内    *
      *                 順次処理を示します。                          *
      *                 このプログラムは、社員番号がファイル LIMITS   *
      *                 で指定された限界内にある社員の情報を          *
      *                 印刷します。                                  *
      *****************************************************************
     FLIMITS    IR   F    6     3  DISK    RAFDATA(EMPMST)
     FEMPMST    IP   F   28L    3PIDISK    KEYLOC(1)
     FPRINT     O    F   80        PRINTER
      *  入力仕様書を使用して、プログラム記述ファイル EMPMST のレコードを
      *  記述する必要があります。
     IEMPMST    NS  01
     I                             P    1    3 0ENUM
     I                                  4   23  ENAME
     I                                 24   24  ETYPE
     I                             P   25   26 0EDEPT

      *  EMPMST は、限界値の各セット内で処理され、対応するレコードが印刷
      *  されます。レコード・アドレス・ファイル LIMITS がファイルの終わりに
      *  達すると、EMPMST ファイルの処理は完了します。

     OPRINT     H    1P                     1
     O                                           12 'SERIAL #'
     O                                           22 'NAME'
     O                                           45 'DEPT'
     O                                           56 'TYPE'
     O          D    01                     1
     O                       ENUM                10
     O                       ENAME               35
     O                       EDEPT               45
     O                       ETYPE               55
プログラム例 2 (限界内順次処理)

図 174 には、プログラム ESWLIM2 (図 175) によって使用されるレコード・アドレス限界値ファイルのデータ記述仕様書 (DDS) を示してあります。

図 174. レコード・アドレス・ファイル LIMITS (物理ファイル) の DDS
     A*****************************************************************
     A*   関連プログラム:  ESWLIM                                     *
     A*             説明:  これは物理ファイル LIMITS の DDS です。    *
     A*                    これには、1 つのレコード様式 LIMIT が      *
     A*                    入っています。                             *
     A*****************************************************************
     A
     A          R LIMIT
     A            LOW            5  0
     A            HIGH           5  0

このプログラムは、前のプログラムと同じジョブを実行します。 唯一の違いは、この 物理ファイル EMPMST はプログラム記述ファイルの代わりに、外部記述ファイルとして 定義されていることです。

図 175. プログラム記述ファイルの限界内順次処理
      *****************************************************************
      *  プログラム名:  ESWLIM2                                       *
      *  関連ファイル:  EMPMST   (物理ファイル)                       *
      *                 LIMITS   (物理ファイル)                       *
      *                 PRINT    (プリンター・ファイル)               *
      *         説明 :  このプログラムは、索引付きファイルの限界内    *
      *                 限界内順次処理を                              *
      *                 示します。                                    *
      *                 このプログラムは、社員番号がファイル LIMITS   *
      *                 で指定された限界内にある社員の情報を          *
      *                 印刷します。                                  *
      *****************************************************************
     FLIMITS    IR   F    6     3  DISK    RAFDATA(EMPMST)
     FEMPMST    IP   E     L     K DISK
     FPRINT     O    F   80        PRINTER
      *  外部記述ファイルでは入力仕様書はオプションです。
      *  ここで、レコード様式 EMPREC のレコード識別標識 *IN01 を
      *  定義し、このレコードの処理を
      *  制御します。
     IEMPREC        01

     OPRINT     H    1P                     1
     O                                           12 'SERIAL #'
     O                                           22 'NAME'
     O                                           45 'DEPT'
     O                                           56 'TYPE'
     O          D    01                     1
     O                       ENUM                10
     O                       ENAME               35
     O                       EDEPT               45
     O                       ETYPE               55
     O*