Cobol-file-access-mode
提供:Dev Guides
COBOL-ファイルアクセスモード
今まで、ファイル編成スキームが議論されてきました。 ファイル編成スキームごとに、異なるアクセスモードを使用できます。 ファイルアクセスモードの種類は次のとおりです-
- シーケンシャルアクセス
- ランダムアクセス
- ダイナミックアクセス
このモジュールの構文は、それぞれの用語とともに言及され、プログラムでの使用法のみを参照しています。 これらの構文を使用した完全なプログラムについては、次の章で説明します。
シーケンシャルアクセス
アクセスモードがシーケンシャルの場合、レコードの取得方法は、選択したファイル編成によって変わります。
- *順次ファイル*の場合、レコードは挿入されたのと同じ順序でアクセスされます。
- *インデックス付きファイル*の場合、レコードを取得するために使用されるパラメーターはレコードキー値です。
- *相対ファイル*の場合、相対レコードキーを使用してレコードを取得します。
構文
順次アクセスモードの構文は次のとおりです-
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS rec-key1
ALTERNATE RECORD KEY IS rec-key2
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS RELATIVE
ACCESS MODE IS SEQUENTIAL
RELATIVE KEY IS rec-key1
ランダムアクセス
アクセスモードがRANDOMの場合、レコードの取得方法は、選択したファイル構成に従って変更されます。
- *インデックス付きファイル*の場合、レコードは、主キーまたは代替キーのキーフィールドに配置された値に従ってアクセスされます。 1つ以上の代替インデックスが存在する場合があります。
- relative files の場合、レコードは相対レコードキーを通じて取得されます。
構文
ランダムアクセスモードの構文は次のとおりです-
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS rec-key1
ALTERNATE RECORD KEY IS rec-key2
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS rec-key1
ダイナミックアクセス
ダイナミックアクセスは、同じプログラムでシーケンシャルアクセスとランダムアクセスの両方をサポートします。 ダイナミックアクセスでは、1つのファイル定義を使用して、キーによっていくつかのレコードにシーケンシャル順序でアクセスし、他のレコードにアクセスするなど、シーケンシャル処理とランダム処理の両方を実行します。
相対ファイルとインデックス付きファイルの場合、ダイナミックアクセスモードでは、READステートメントでNEXT句を使用して、ファイルの読み取り中にシーケンシャルアクセスモードとランダムアクセスモードを切り替えることができます。 NEXTおよびREAD機能については、次の章で説明します。
構文
ダイナミックアクセスモードの構文は次のとおりです-
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS DYNAMIC
RECORD KEY IS rec-key1
ALTERNATE RECORD KEY IS rec-key2
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC
RELATIVE KEY IS rec-key1