レコード・アドレス・ファイル

レコード・アドレス・ファイルを使用して他のファイルを 処理することができます。 レコード・アドレス・ファイルには、(1) ファイルの限界内順次処理で使用 する限界値レコード、または (2) 相対レコード番号によるファイルの処理で 使用する相対レコード番号が入っています。 レコード・アドレス・ファイル自体の処理は順次処理でなければなりません。

レコード・アドレス・ファイルは、ファイル仕様書の 18 桁目の R で識別されます。 レコード・アドレス・ファイルに相対レコード番号があれば、35 桁目に T がなければなりません。 レコード・アドレス・ファイルによって処理されるファイルの名前はファイル仕様書に指定しなければなりません。 このファイルはキーワード RAFDATA(ファイル名) を使用して識別します。

限界値レコード

限界内順次処理の場合には、レコード・アドレス・ファイルには 限界値レコードが入ります。 限界値レコードには読み取るファイルのレコードの最低のキー および最高のキーが含まれます。

レコード・アドレス・ファイル中の限界値レコードの形式は次のとおりです。

相対レコード番号

相対レコード番号処理の場合には、レコード・アドレス・ファイルに 相対レコード番号が入っています。 処理中のファイルから検索された各レコードはレコード・アドレス・ファイルの相対レコード番号に基づいています。 相対レコード番号が入っているレコード・アドレス・ファイルは、 限界値範囲内処理に使用することができません。 レコード・アドレス・ファイルの各相対レコード番号は、 各フィールドに相対レコード番号が入っている複数バイトの 2 進数フィールドです。

レコード・アドレス・ファイルの長さは、 ファイルのソースによって、4、3、またはブランクとして指定することが できます。iSeries 環境からのレコード・アドレス・ファイルを使う時は、各フィールドの長さは 4 バイトなので、レコード・アドレス・ファイルの長さは 4 に指定します。システム/36 環境用で作られた レコード・アドレス・ファイルを使う時は、各フィールドの長さは 3 バイトなので、 レコード・アドレス・ファイルは 3 と指定します。 レコード・アドレス・ファイルの長さをブランクとして指定した場合には、 コンパイラーが、実行時にプライマリー・レコードの長さを検査し、 レコード・アドレス・ファイルの長さを 3 バイトとして取り扱うかまたは 4 バイトとして取り扱うかを決定します。

マイナス 1 (-1 または 16 進数の FFFFFFFF) の相対レコード番号の値によって、 相対レコード・アドレス・ファイル・レコードの使用を停止します。 レコード・アドレス・ファイルのすべてのレコードが処理された時に、ファイルの終わりになります。