レコードまたはファイルに有効なキー

キー順アクセス・パスの場合には、レコード様式のキー・フィールドとして使用するために、 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 プログラムはこの検索引数とファイルまたはレコードのキーを比較し、検索引数と一致したキーのレコードに対して指定命令を処理します。