有効な検索引数
ファイル名やレコード名を指定する ILE RPG 命令である CHAIN、DELETE、 READE、READPE、SETGT、および SETLL に、検索引数を指定することができます。
– REC1 にはキー・フィールド A があります。
– REC2 にはキー・フィールド A および B があります。
– REC3 にはキー・フィールド A、B、および C があります。
すべてのレコード・タイプに共通のキー・フィールドはフィールド A のみで あるため、検索引数はフィールド A と同じ属性だけをもつ単一フィールドとしかなれません。
レコード名に対する命令の場合には、検索引数に指定できるフィールドの 最大数は、そのレコード・タイプのキーとして有効なキー・フィールドの 合計数と同じです。
検索引数が 1 つ以上のフィールドから成り立つ場合は、 表意定数 KLIST、および自由形式演算では式のリスト (小括弧で囲む) または %KDS を指定することができます。 単一のフィールドからなる検索引数の場合には、上記に加えて、リテラルまたは変数名も指定できます。
- KLIST を使用して検索引数をコーディングします。この場合、KFLD 命 令コードの演算項目 2 にヌル標識を指定できます。
- ヌル可能フィールドを検索引数としてリスト内に (括弧で囲んで) コーディングします。
- ヌル可能フィールドを %KDS で指定されたデータ構造内にコーディングします。
検索引数の各フィールドの属性は、 ファイルまたはレコード・キー内の対応するフィールドの属性と同じでなければなりません。 属性には長さ、データ・タイプ、および小数部分の桁数があります。 属性は、コンパイラー・リストのキー・フィールド情報データ・テーブルに リストされます。キー・フィールド情報の例を参照してください。自由形式演算 の入出力操作で使用されるリストまたは %KDS の検索引数で必要になるのは、型の一致のみです。 長さおよび形式は、ファイル内で定義されているキーと異なっても構いません。
これらすべてのファイル命令 (CHAIN、DELETE、READE、READPE、SETGT、およ び SETLL) の中では、ファイルまたはレコードに有効なフィールドの合計数より も少ないフィールドで検索引数を指定することもできます。 このような 検索引数は部分キーと呼びます。