KLIST (複合キーの定義)
| 自由形式構文 | (許可されていない - %KDS を使用) |
| コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
|---|---|---|---|---|---|---|
| KLIST | KLIST 名 | |||||
KLIST 命令は宣言命令で、KFLD のリストに名前を付けます。 このリストを 検索引数として使用すれば、複合キーを持つファイルからレコードを検索する ことができます。
KLIST は演算の中の任意の場所に指定することができます。 制御レベル項目 (7 から 8 桁目) はブランクにするか、 あるいは L1 から L9 標識、LR 標識、または L0 項目を入れてプログラムの該当する セクション内のステートメントをグループにまとめることができます。 条件付け標識の指定 (9 から 11 桁目) は使用できません。演算項目 1 には固有の名前を入れなければなりません。
KLIST 命令を指定する場合には、次のことに留意してください。
- 検索引数が複数のフィールド (複合キー) から構成される場合には、複数 の KFLD を持つ KLIST を指定しなければなりません。
- KLIST 名を検索引数として指定できるのは、外部記述ファイルの場合だけ です。
- KLIST とそれに対応する KFLD フィールドは演算の中の任意の場所に入れ ることができます。
- KLIST の直後には少なくとも 1 つの KFLD がなければなりません。
- KLIST は、KFLD 以外の命令が見付かると終了します。
- KLIST 名は、CHAIN、DELETE、READE、READPE、SETGT、または SETLL 命令 の演算項目 1 に入れることができます。
- 同じ KLIST 名を複数のファイルに検索引数として使用するか、あるいは同 じファイルに検索引数として複数回使用することができます。
- サイクル・メイン・プロシージャーの KLIST は、対応する大域の KFLD だけを持つことができます。 サブプロシージャーの KLIST は内部および大域の KFLD を持つことが できます。 詳細については、定義の有効範囲を参照してください。
詳細については、宣言命令を参照してください。
図 1. KLIST および KFLD 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
A* DDS ソース・ステートメント
A R RECORD
A FLDA 4
A SHIFT 1 0
A FLDB 10
A CLOCK# 5 0
A FLDC 10
A DEPT 4
A FLDD 8
A K DEPT
A K SHIFT
A K CLOCK#
A*
A* DDS ソース・ステートメントの終わり
A*
A***********************************************************************
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
*
* KLIST 命令は、検索引数を指定できる名前 FILEKY
* を指示します。
*
C FILEKY KLIST
C KFLD DEPT
C KFLD SHIFT
C KFLD CLOCK#
次の図に、検索引数がどのようなものであるかを示します。 フィールド DEPT、SHIFT、および CLOCK# はこのレコードのキー・フィールド です。
