アクセス・パス

外部記述ファイルの記述には、レコードをファイルから取り出す方法を記述しているアクセス・パスが 含まれます。 レコードは、到着順 (キー順でない) アクセス・パスまたはキー順アクセス・ パスに基づいて検索することができます。

到着順アクセス・パスは、レコードがファイルに保管される順序に 基づいています。 レコードは 1 つずつ順番にファイルに追加されていきます。

キー順アクセス・パスの場合には、ファイル内のレコードの順序は、 そのファイルの DDS に定義されたキー・フィールドの内容に基づいています。例えば、図 160 に示されている DDS では、 CUST はキー・フィールドとして定義されています。 キー順アクセス・パスは、レコードを追加した場合、削除した場合、あるいは キー・フィールドの内容が変更された場合には、常に更新されます。

外部記述データベース・ファイルの場合のアクセス・パスの詳細については、Web サイト http://www.ibm.com/eserver/iseries/infocenteriSeries Information Center の中の『データベース』カテゴリーの『DB2 Universal Database for AS/400』の節を参照してください。

図 160. データベース・ファイルのデータ記述仕様書の例
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ..*
A..........T.Name++++++.Len++TDpB......Functions++++++++++++++++++++*
A** 論理     CUSMSTL    得意先マスター・ファイル
A                                      UNIQUE
A          R CUSREC                    PFILE(CUSMSTP)
A                                      TEXT('Customer Master Record')
A            CUST
A            NAME
A            ADDR
A            CITY
A            STATE
A            ZIP
A            SRHCOD
A            CUSTYP
A            ARBAL
A            ORDBAL
A            LSTAMT
A            LSTDAT
A            CRDLMT
A            SLSYR
A            SLSLYR
A          K CUST

DDS のサンプルは、得意先マスター論理ファイル CUSMSTL のものです。 このファイルには、1 つのレコード様式 CUSREC (得意先マスター・レコード) があります。 このファイルのデータは、物理ファイル CUSMSTP に入っていますが、 これはキーワード PFILE によって識別されます。 UNIQUE キーワードを使用して、このファイルには重複するキーの値を使用でき ないことを示しています。 CUST フィールドは、最後の行の 17 桁目に K があるので、このレコード様式 のキー・フィールドとして識別されます。

このレコード様式のフィールドは、レコードに現れる順序でリストされます 。 フィールドの属性は、物理ファイル CUSMSTP から獲得されます。 順に、物理ファイルはフィールド参照ファイルを参照してフィールドの属性を 獲得します。 フィールド参照ファイルは 図 161 に示してあります。

図 161. フィールド参照ファイルの例
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ..*
A..........T.Name++++++RLen++TDpB......Functions++++++++++++++++++++*
A**FLDRED    DSTREF     配送アプリケーションのフィールド参照
A          R DSTREF                    TEXT('Distribution Field Ref')
A* 参照として使用される共通フィールド
A            BASDAT         6  0       EDTCDE(Y)  1 
A                                      TEXT('Base Date Field')
A* 得意先マスター・ファイルで使用されるフィールド
A            CUST           5          CHECK(MF)  2 
A                                      COLHDG('Customer' 'Number')
A            NAME          20          COLHDG('Customer Name')
A            ADDR      R               REFFLD(NAME)  3 
A                                      COLHDG('Customer Address')
A            CITY      R               REFFLD(NAME)  3 
A                                      COLHDG('Customer City')
A            STATE          2          CHECK(MF)  2 
A                                      COLHDG('State')
A            SRHCOD         6          CHECK(MF)  2 
A                                      COLHDG('Search' 'Code')
A                                      TEXT('Customer Number Search +
A                                      Code')
A            ZIP            5  0       CHECK(MF)  2 
A                                      COLHDG('Zip' 'Code')
A            CUSTYP         1  0       RANGE(1 5)  4 
A                                      COLHDG('Cust' 'Type')
A                                      TEXT('Customer Type 1=Gov 2=Sch+
A                                      3=Bus 4=Pvt 5=Oth')
A            ARBAL          8  2       COLHDG('Accts Rec' 'Balance')  5 
A                                      EDTCDE(J)  6 
A            ORDBAL    R               REFFLD(ARBAL)
A                                      COLHDG('A/R Amt in' 'Order +
A                                      File')
A            LSTAMT    R               REFFLD(ARBAL)
A                                      COLHDG('Last' 'Amount' 'Paid')
A                                      TEXT('Last Amount Paid in A/R')
A            LSTDAT    R               REFFLD(BASDAT)
A                                      COLHDG('Last' 'Date' 'Paid')
A                                      TEXT('Last Date Paid in A/R')
A            CRDLMT    R               REFFLD(ARBAL)
A                                      COLHDG('Credit' 'Limit')
A                                      TEXT('Customer Credit Limit')
A            SLSYR     R+   2          REFFLD(ARBAL)
A                                      COLHDG('Sales' 'This' 'Year')
A                                      TEXT('Customer Sales This Year')
A            SLSLYR    R+   2          REFFLD(ARBAL)
A                                      COLHDG('Sales' 'Last' 'Year')
A                                      TEXT('Customer Sales Last Year')  7 

このフィールド参照ファイルの例は、図 160 に示されている CUSMSTL (得意先マスター論理) ファイルによって使用されるフィールドの定義 を示しています。 フィールド参照ファイルには通常、他のファイルによって使用される フィールドの定義が入っています。 次のテキストは、このフィールド参照ファイルの一部の項目について説明して います。

 1 
BASDAT フィールドは、キーワード EDTCDE(Y) によって示してあるよう に Y 編集コードによって編集されます。 このフィールドを ILE RPG プログラムの外部記述出力ファイルで使う場合は、使用される編集コードはこのフィールド参照ファイルで指定されたものになります。 これは ILE RPG プログラムで一時変更はされません。このフィールドを ILE RPG プログラム記述の出力ファイルで使用する場合には、編集コードは出力仕様書のフィールドに指定しなければなりません。
 2 
CHECK(MF) 項目は、フィールドを表示ワークステーションから入力する場合には、 そのフィールドが全桁入力フィールドとなることを示します。 全桁入力とは、表示ワークステーションから フィールドのすべての桁を入力しなければならないことを意味します。
 3 
ADDR および CITY フィールドは、REFFLD キーワードで示されているよう に NAME フィールドに指定したのと同じ属性を共用します。
 4 
CUSTYP フィールドに指定した RANGE キーワードによって、 表示ワークステーションからこのフィールドに入力できる有効な番号は 1 〜 5 だけということになります。
 5 
フィールドが対話式データベース・ユーティリティー (IDU) で使用されて いる場合には、COLHDG キーワードがそのフィールドの欄見出しを提供します。
 6 
ARBAL フィールドは、キーワード EDTCDE(J) によって示してあるように J 編集コードによって編集されます。
 7 
一部のフィールドにはテキスト記述 (TEXT キーワード) が提供されます。 TEXT キーワードは 文書化を目的とし、いろいろなリストに出てきます。