START ステートメントは、その後の順次レコード検索のために、索引付きファイルまたは相対ファイル内での位置決めの手段を提供します。
START ステートメントを実行する場合には、 関連する索引付きファイルまたは相対ファイルは、 INPUT モードまたは I-O モードのいずれかでオープンされている必要があります。
KEY 句を指定すると、ファイル位置標識が、 比較で合致するキー・フィールドを持つファイル内の論理レコードに位置付けられます。
KEY 句を指定しない場合は、 KEY IS EQUAL (基本レコード・キーに一致する) が暗黙に指定されます。
KEY がデータ項目「より小さい」または「より小か等しい」と指定すると、 ファイル位置標識は、比較に合致し、現在ファイル内にある最後の論理レコードに位置決めされます。
索引ファイルでは、比較に合致するキーに重複する記入項目がある場合、ファイル位置標識はこれらの記入項目の最後に位置決めされます。
START ステートメントが実行されると、 キー・データ名の現行値とファイルの指標内の該当キー・フィールドが比較されます。
ファイル制御項目の中に FILE STATUS 文節が指定されている場合は、 START ステートメントの実行時に、関連するファイル状況キーが更新されます (ファイル状況キーを参照)。
ファイルのどのレコードも比較が満たされない場合は、無効キー条件が存在します。ファイル位置標識の位置が定義されておらず 、(指定されている場合は) INVALID KEY 命令ステートメントが実行されます。 (『共通の処理機能』にあるINTO 句および FROM 句を参照。)
INVALID KEY 句および利用可能な EXCEPTION/ERROR プロシージャーは、両方とも省略することができます。
この明示的範囲終了符号は、START ステートメントの範囲を区切るために使用されます。 END-START を使用すると、 条件付き START ステートメントを他の条件ステートメント内にネストすることができます。 END-START 句は、命令 START ステートメントと共に使用することもできます。
詳しくは、範囲区切りステートメントを参照してください。
KEY 句を指定したときは、比較のために使用されるキー・データ項目はデータ名-1 です。
KEY 句を指定しない場合は、EQUAL TO 比較のために使用されるキー・データ項目は、 基本 RECORD KEY です。
START ステートメントが正しく実行されると、データ名-1 が関連付けられている RECORD KEY または ALTERNATE RECORD KEY は、 後続の READ ステートメントで使用される参照キーとなります。
カテゴリーにかかわらず、データ名-1 は、比較演算を行うために、英数字項目として扱われます。
ファイル位置標識は、比較を満たすキー・フィールドを持つファイル内の最初のレコードに位置付けられます。比較の際にオペランドの長さが等しくない場合には、 長い方のフィールドの右側が短い方のフィールドに合わせて切り捨てられたかのようにして処理します。 PROGRAM COLLATING SEQUENCE 文節が指定されていても効力を持たないことを除いて、 他の数字および英数字比較の規則がすべて適用されます。
START ステートメントが正常に実行すると、データ名-1 が関連付けられている RECORD KEY は、 後続の READ ステートメントの参照キーになります。
START ステートメントの実行が正常に行われないと、参照キーは定義されません。
KEY 句を指定する場合は、データ名-1 に RELATIVE KEY を指定する必要があります。
KEY 句の指定の有無にかかわらず、比較の際に使用されるキー・データ項目は、 RELATIVE KEY データ項目です。数字比較の規則が適用されます。
ファイル位置標識は、指定された比較の条件を満たすキーを持つファイル内の論理レコードを指示します。