ILE COBOL 解説書

索引付きファイル

KEY 句が指定されている場合には、比較に使用されるキー・データ項目はデータ名です。

KEY 句が指定されていない場合、ファイル位置標識は、RECORD KEY データ項目に入っている値と等しいキーを持つレコードに設定されます。

START ステートメントが正常に実行された場合には、データ名-1 の関連付 けられている RECORD KEY または ALTERNATE RECORD KEY が、後続の READ ステートメント の参照キーになります。

KEY 句が指定されている場合、比較に使用される検索引数はデータ名-1 であり、次のいずれかにすることができます。

注:
RECORD KEY が COMP、COMP-3、または COMP-4 として定義されている場合、キー・データ項目は RECORD KEY そのものでなければなりません。 レコード域の部分キー・フィールドを使用することはできません。

ファイル位置標識は、ファイル内で比較を満たすレコード・キーを持つ、ある形式の最初のレコードに設定されます。 比較するオペランドの長さが同じでない場合には、 長い方のフィールドの右側が短いフィールドの長さに合わせて切り捨てられたかのように比較が実行されます。 PROGRAM COLLATING SEQUENCE 文節が指定されても無効になる点を除き、 他の数字比較および非数字比較のすべての規則が適用されます。

+----------------------------------IBM 拡張----------------------------------+

RECORD KEY IS EXTERNALLY-DESCRIBED-KEY を指定したファイルの場合は、次のような追加の考慮事項が適用されます。


表 33. KEY IS と FORMAT 句の関係

FORMAT 句の指定 KEY 句
一連のデータ名 省略 EXTERNALLY-DESCRIBED-KEY
A、B C、D C、B
不可 A、E F、G F、E

A
検索引数は、指定されたデータ項目を使用して作成されます。

B
ファイル位置標識は、指定された形式をもち、KEY 句で指定された比較を満たすレコード・キーを持つ、 ファイル内の最初のレコードに設定されます。

C
検索引数は、FORMAT 句で指定された形式用のレコード域内のキー・フィールドを使用して作成されます。

D
ファイル位置標識は、指定された形式をもち、検索引数と等しいレコード・キーを持つ、ファイル内の最初のレコードに設定されます。

E
ファイル位置標識は、ファイルの共通キーをもち、KEY 句で指定された比較を満たす、 ファイル内の最初のレコードに設定されます。 共通キーがない場合、ファイル位置標識はファイル内の先頭レコードに設定されます。

F
検索引数は、ファイルについての最初のレコード形式 (プログラムで定義された) 用のレコード域のキー・フィールドを使用して作成されます。

G
ファイル位置標識は、ファイルの共通キーをもち、 検索引数と等しい、ファイル内の最初のレコードに設定されます。 共通キーがない場合、ファイル位置標識はファイル内の先頭レコードに設定されます。

+------------------------------End of IBM 拡張-------------------------------+

KEY 句が指定されていない場合には、EQUAL TO 比較に使用されるキー・データ項目は基本 RECORD KEY です。

データ名-1
次のいずれかにすることができます。

ファイル位置標識は、比較を満たすキー・フィールドを持つ、ファイル内の最初のレコードに設定されます。 比較するオペランドの長さが同じでない場合には、 長い方のフィールドの右側が短いフィールドの長さに合わせて切り捨てられたかのように比較が実行されます。 PROGRAM COLLATING SEQUENCE 文節が指定されても無効になる点を除き、 他の数字比較および非数字比較のすべての規則が適用されます。

START ステートメントが正常に実行された場合には、 データ名-1 の関連付けられている RECORD KEY が、後続の READ ステートメントの参照キーになります。

START ステートメントの実行が失敗すると、参照キーが未定義になります。

+----------------------------------IBM 拡張----------------------------------+

装置タイプ DATABASE の索引付きファイルの場合、 比較の意味は、ファイル用に定義されたレコード域内のキー・フィールドのタイプの影響を受けることがあります。 このシステムでのキー・フィールドは、複数フィールドとして定義することができ、それぞれのフィールドは昇順または降順にすることができます。 システムは、レコード・キーに入っている値と DDS 内で指定された形式と順序に基づいて、 レコードについての順序 (キー順アクセス・パス) を確立します。 START ステートメントが処理される際には、要求は次のように解釈されます。

COBOL 比較 システムの結果
GREATER THAN AFTER
NOT LESS THAN EQUAL TO または AFTER

たとえば、GREATER THAN という比較を用いてステートメントが処理される場合は、START ステートメントによって指定された検索引数の後の最初のレコードを見つけるために、 順序付けられたレコードの検索が行われます。 ファイルが降順キーで順序付けられた場合、ファイル位置標識は、指定されたキーより小さく、 かつ、START ステートメントに指定されたキーよりも大きくないキーを持つレコードを指します。

+------------------------------End of IBM 拡張-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]