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