INDEXED BY 句
INDEXED-BY 句は、そのテーブルで使用することができる指標を指定します。 そのテーブル・エレメントを参照するために指標付けを使用する場合は、INDEXED BY 句を指定する必要があります。 指標名を使用した添え字付け (指標付け)を参照してください。
指標の値は、指標データ項目の値を保管することによってプログラムへアクセスできるようになります。 指標データ項目は、USAGE IS INDEX 文節を含んでいるデータ記述記入項目によってプログラムに記述されます。 指標値は、SET ステートメントを実行することによって指標データ項目に移されます。
指標は、通常、テーブルを含むプログラムに関連した静的メモリーで割り振られます。
このため、指標は、プログラムに再入したときの、最後に使われた状態になります。
ただし、以下の場合、指標は、呼び出しごとに割り振られます。
したがって、プログラムに入るたびに、以下のセクションのテーブルの指標に対して
値を設定する必要があります。
- ローカル・ストレージ・セクション
- RECURSIVE 属性でコンパイルされるプログラムのリンケージ・セクション
INDEXED BY 句 - 形式 .----------. V | >>-INDEXED--+----+----指標名-1-+---------------------------------->< '-BY-'
- 指標名-1
- ユーザー定義語の形成規則に従っていなければなりません。
少なくとも 1 文字は英字でなければなりません。
各指標名は、プログラムで使用するためにコンパイラーによって作成される指標を指定します。 それらの指標名はデータ名ではなく、COBOL プログラムの他のどこでも識別されません。 それらは、このオブジェクト・プログラムだけを使用するための専用の特殊レジスターと見なすことができます。 そのため、それらの指標名はデータでもデータ階層の一部でもありません。 そのため、おのおのが固有名でなければなりません。
GLOBAL 属性を持つデータ項目に、指標を使ってアクセスされるテーブルが含まれていると、そのテーブルに定義される指標も GLOBAL 属性をもちます。
