COBOL-ファイルアクセスモード
これまで、ファイル編成スキームが議論されてきました。ファイル編成スキームごとに、さまざまなアクセスモードを使用できます。ファイルアクセスモードの種類は次のとおりです-
- シーケンシャルアクセス
- ランダムアクセス
- ダイナミックアクセス
このモジュールの構文は、それぞれの用語とともに言及されており、プログラムでの使用法のみを参照しています。これらの構文を使用する完全なプログラムについては、次の章で説明します。
シーケンシャルアクセス
アクセスモードがシーケンシャルの場合、選択したファイル構成に応じてレコードの取得方法が変わります。
にとって sequential files、レコードは、挿入されたのと同じ順序でアクセスされます。
にとって indexed files、レコードのフェッチに使用されるパラメーターは、レコードキー値です。
にとって relative files、相対レコードキーは、レコードを取得するために使用されます。
構文
以下は、シーケンシャルアクセスモードの構文です。
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
ランダムアクセス
アクセスモードがランダムの場合、選択したファイル構成に応じてレコードの取得方法が変わります。
にとって indexed files、レコードは、プライマリキーまたは代替キーのキーフィールドに配置された値に従ってアクセスされます。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