レコードまたはファイルに有効なキー
キー順アクセス・パスの場合には、レコード様式のキー・フィールドとして使用するために、 DDS に 1 つまたは複数のフィールドを定義することができます。ファイル内のすべてのレコード・タイプが同じキー・フィールドをもつ必要は ありません。 例えば、受注見出しレコードで ORDER フィールドをキー・フィールドとして 定義し、受注明細レコードで ORDER および LINE フィールドをキー・フィールド として定義することができます。
ファイルのキーは、そのファイル内のレコード・タイプに有効なキーに
よって決まります。 ファイルのキーは次のようにして決まります。
- ファイルのすべてのレコード・タイプが DDS で定義された同じ属性のキー ・フィールドを同数もっている場合には、 ファイルのキー はそれらのレコード・タイプのキーのすべての フィールドから成ります。 (対応するフィールドが同じ名前をもつ必要はありません。) 例えば、 ファイルが 3 つのレコード・タイプを持っていて、各レコード・タイプのキーが A、B、C のフィールドで構成されている場合、 そのファイルのキーはフィールド A、B、および C で構成されます。すなわち、ファイルのキーはレコードのキーと同じになります。
- ファイルのすべてのレコード・タイプが同じキー・フィールドをもってい
ない場合には、ファイルのキーはすべてのレコード・タイプに
共通 のキー・フィールドから成ります。 例えば、ファイルに 3 つのレコード・タイプがあり、キー・フィールドが次
のとおり定義されていたとします。
- REC1 にはキー・フィールド A があります。
- REC2 にはキー・フィールド A および B があります。
- REC3 にはキー・フィールド A、B、および C があります。
この場合のファイルのキーはフィールド A、すなわちすべてのレコード・タイプに共通のキー・フィールドとなります。
- すべてのレコード・タイプに共通のキー・フィールドがない場合には、 そのファイルにキーはありません。
ILE RPG プログラムでは、あるファイル命令コードに検索引数を指定して、処理したいレコードを識別することができます。ILE RPG プログラムはこの検索引数とファイルまたはレコードのキーを比較し、検索引数と一致したキーのレコードに対して指定命令を処理します。