FILE-CONTROL 段落は、COBOL プログラム内の各ファイルを外部データ・セットに関連 付け、ファイル編成、アクセス・モード、およびその他の情報を指定します。
FILE-CONTROL 段落のフォーマットは、以下のとおりです。
以下の表には、プログラムおよびメソッドで使用可能な各種のファイルのリストを示します。
| ファイル編成 | アクセス方式 |
|---|---|
| 順次 | QSAM、VSAM1 |
| 相対 | VSAM1 |
| 索引付き | VSAM1 |
| 行順次2 | テキスト・ストリーム I-O |
|
|
FILE-CONTROL 段落は、FILE-CONTROL という語で開始し、後に分離文字ピリオドが続きます。ここには、 データ部の FD 項目または SD 項目で記述されるそれぞれのファイルに対応して、 1 つの (ただ 1 つの) 項目を記述する必要があります。
各項目内では、SELECT 節が最初でなければなりません。 その他の節の順序は任意です。ただし、索引付きファイルで PASSWORD 節を指定する場合は、関連する RECORD KEY または ALTERNATE RECORD KEY データ名の直後に指定しなければなりません。
フォーマット 1: 順次ファイル制御項目 >>-SELECT--+----------+--ファイル名-1---------------------------> '-OPTIONAL-' .--------------. V | >--ASSIGN----+----+----割り当て名-1-+---------------------------> '-TO-' >--+--------------------------+---------------------------------> '-RESERVE--整数--+-------+-' +-AREA--+ '-AREAS-' >--+--------------------------------------+---------------------> '-+----------------------+--SEQUENTIAL-' '-ORGANIZATION--+----+-' '-IS-' >--+------------------------------------------------+-----------> '-PADDING--+-----------+--+----+--+-データ名-5-+-' '-CHARACTER-' '-IS-' '-リテラル-2-' >--+--------------------------------------------+---------------> '-RECORD DELIMITER--+----+--+-STANDARD-1---+-' '-IS-' '-割り当て名-2-' >--+--------------------------------------+---------------------> '-ACCESS--+------+--+----+--SEQUENTIAL-' '-MODE-' '-IS-' >--+------------------------------+-----------------------------> '-PASSWORD--+----+---データ名-6-' '-IS-' >--+------------------------------------------------------+-----> '-+------+--STATUS--+----+--データ名-1---+------------+-' '-FILE-' '-IS-' '-データ名-8--' >--.-----------------------------------------------------------><
フォーマット 2: 索引付きファイル制御項目 >>-SELECT--+----------+--ファイル名-1---------------------------> '-OPTIONAL-' .--------------. V | >--ASSIGN----+----+----割り当て名-1-+---------------------------> '-TO-' >--+--------------------------+--+----------------------+-------> '-RESERVE--整数--+-------+-' '-ORGANIZATION--+----+-' +-AREA--+ '-IS-' '-AREAS-' >--INDEXED--+------------------------------------------+--------> '-ACCESS--+------+--+----+--+-SEQUENTIAL-+-' '-MODE-' '-IS-' +-RANDOM-----+ '-DYNAMIC----' >--RECORD--+-----+--+----+--データ名-2--------------------------> '-KEY-' '-IS-' .----------------. V | >--+------------------------------+----+------------+-+---------> '-PASSWORD--+----+--データ名-6--' '-| 項目 1 |-' '-IS-' >--+------------------------------------------------------+-----> '-+------+--STATUS--+----+--データ名-1--+------------+-' '-FILE-' '-IS-' '-データ名-8-' >--.----------------------------------------------------------->< 項目 1 |--ALTERNATE--+--------+--+-----+--+----+--データ名-3-----------> '-RECORD-' '-KEY-' '-IS-' >--+----------------------+--+------------------------------+---| '-+------+--DUPLICATES-' '-PASSWORD--+----+--データ名-7-' '-WITH-' '-IS-'
フォーマット 3: 相対ファイル制御項目 >>-SELECT--+----------+--ファイル名-1---------------------------> '-OPTIONAL-' .--------------. V | >--ASSIGN----+----+-----割り当て名-1-+---------------------------> '-TO-' >--+--------------------------+--+----------------------+-------> '-RESERVE--整数--+-------+-' '-ORGANIZATION--+----+-' +-AREA--+ '-IS-' '-AREAS-' >--RELATIVE-----------------------------------------------------> >--+-------------------------------------------------------------------------------------+--> '-ACCESS--+------+--+----+--+-SEQUENTIAL--+---------------------------------------+-+-' '-MODE-' '-IS-' | '-RELATIVE--+-----+--+----+--データ名-4-' | | '-KEY-' '-IS-' | '-+-RANDOM--+--RELATIVE--+-----+--+----+--データ名-4----' '-DYNAMIC-' '-KEY-' '-IS-' >--+------------------------------+-----------------------------> '-PASSWORD--+----+--データ名-6-' '-IS-' >--+------------------------------------------------------+-----> '-+------+--STATUS--+----+--データ名-1--+------------+-' '-FILE-' '-IS-' '-データ名-8-' >--.-----------------------------------------------------------><
フォーマット 4: 行順次ファイル制御項目 >>-SELECT--+----------+--ファイル名-1---------------------------> '-OPTIONAL-' .--------------. V | >--ASSIGN----+----+----割り当て名-1--+---------------------------> '-TO-' >--+----------------------+--LINE SEQUENTIAL--------------------> '-ORGANIZATION--+----+-' '-IS-' >--+--------------------------------------+---------------------> '-ACCESS--+------+--+----+--SEQUENTIAL-' '-MODE-' '-IS-' >--+--------------------------------------+--.----------------->< '-+------+--STATUS--+----+--データ名-1--' '-FILE-' '-IS-'