1. ファイル記述項目

環境部のSELECT節で定義したファイルについて説明の開始を示します。FileDescription (FD)、またはSortFileDescription (SD)の後に、ファイル名を記述します。

  • 形式1

    figure dd file description entry format1
    Figure 1. ファイル記述項目 - 形式1
    figure dd file description entry format1 clause1
    Figure 2. ファイル記述項目の形式1 - 節1
    figure dd file description entry format1 clause2
    Figure 3. ファイル記述項目の形式1 - 節2
  • 形式2

    figure dd file description entry format2
    Figure 4. ファイル記述項目 - 形式2
    figure dd file description entry format2 clause1
    Figure 5. ファイル記述項目の形式2 - 節
  • 形式3

    figure dd file description entry format3
    Figure 6. ファイル記述項目 - 形式3
    figure dd file description entry format3 clause1
    Figure 7. ファイル記述項目の形式3 - 節
  • 形式4

    figure dd file description entry format4
    Figure 8. ファイル記述項目 - 形式4
    figure dd file description entry format4 clause1
    Figure 9. ファイル記述項目の形式4 - 節1
    figure dd file description entry format4 clause2
    Figure 10. ファイル記述項目の形式4 - 節2

1.1. FILEセクション

FILEセクションは、各入出力ファイルのレベル標識(FD、SD)を含みます。

項目 説明

file-name

ファイル名は、レベル標識(FD、SD)の後に記述し、関連するSELECT節に記述されている必要があります。ファイル名はプログラム内で一意でなければなりません。

FD(format 1,2,3)

FD項目の最後の節の後には、ピリオド(.)が必要です。

ソート/マージ・ファイルを除くすべてのファイルは、FILEセクションに必ずFD項目を含んでいる必要があります。

SD(format4)

ソート/マージ・ファイルは、FILEセクションにSD項目を含んでいる必要があります。

SD項目の最後の節の後には、必ずピリオド(.)が必要です。

FILEセクションのレコードは、必ず英数字グループ項目、または英字、英数字、DBCS、数字の基本データ項目である必要があります。

1.1.1. EXTERNAL節

EXTERNAL節は、COBOLプログラムの実行単位内(run unit)で、相互に異なるプログラムがファイルを共有できるように指定します。

1.1.2. GLOBAL節

GLOBAL節は、ネストされたプログラムと、ネストしているプログラムとの間でファイルを共有するために指定します。

1.1.3. BLOCK CONTAINS節

BLOCK CONTAINS節は、物理レコードのサイズを定義します。この構文は構文チェックは行われますが、実行には影響を与えません。

1.1.4. RECORD節

RECORD節を使用する場合、レコードのサイズは、レコード内に記述されたデータ項目のUSAGEに関係なく、レコードの保存に必要なバイト数で記述する必要があります。たとえば、10文字のDBCS文字で構成されたレコードがあるとした場合、RECORD節はRECORD CONTAINS 20 CHARACTERSと記述しなければなりません。RECORD節を省略すると、コンパイラーはレコード記述からレコード長を決定します。

形式1

形式1は、固定長レコードのサイズを指定します。

figure dd record clause format1
Figure 11. RECORD CONTAINS形式1
項目 説明

integer-3

レコードのサイズを正の整数で記述します。

形式2

形式2は、固定長または可変長レコードのサイズを指定します。

figure dd record clause format2
Figure 12. RECORD CONTAINS形式2
項目 説明

integer-4

レコードのサイズの最小値を正の整数で記述します。

integer-5

レコードのサイズの最大値を正の整数で記述します。

integer-4とinteger-5が同じである場合、固定長レコードになります。

形式3

形式3は、可変長レコードのサイズを指定します。

figure dd record clause format3
Figure 13. RECORD CONTAINS形式3
項目 説明

integer-6

レコードのサイズの最小値を正の整数で記述します。

integer-7

レコードのサイズの最大値を正の整数で記述します。

data-name-1

符号なし整数型の基本データ項目である必要があります。

RELEASE、REWRITEまたはWRITEステートメントが実行される前に、data-name-1にレコード長を指定する必要があります。

DELETE、RELEASE、REWRITE、START、WRITEステートメントが実行されても、またREADまたはRETURNステートメントの実行に失敗した場合も、data-name-1の値は変わりません。

READまたはRETURNステートメントの実行に成功した場合、data-name-1の値は、直前に取得したレコード長に変わります。

1.1.5. LABEL RECORDS節

LABEL RECORDS節は、ラベルが存在するかどうかを定義します。この構文は構文チェックは行われますが、実行には影響を与えません。

1.1.6. VALUE OF節

VALUE OF節は、ファイルに関連するラベル・レコードを定義します。この構文は構文チェックは行われますが、実行には影響を与えません。

1.1.7. DATA RECORDS節

DATA RECORDS節は、ファイルに関連するデータの名前を定義します。この構文は構文チェックは行われますが、実行には影響を与えません。

1.1.8. LINAGE節

LINAGE節は、論理ページのサイズを行数で指定します。必要に応じて、論理ページのフッター領域の開始位置や上下の余白を指定することもできます。

LINAGE節は、OUTPUTモードまたはEXTENDモードでオープンされている順次ファイルに対して有効です。

項目 説明

data-name-5, integer8

論理ページの行数を指定します。指定された行数で表されるページの領域を、ページ本体といいます。この値は、0より大きくなければなりません。

WITH FOOTING AT

integer-9またはdata-name-6の値は、ページ本体内のフッター領域の開始位置の行番号を指定します。この値は0より大きく、かつページ本体の最後の行番号より大きくてはなりません。

LINES AT TOP

integer-10またはdata-name-7の値は、論理ページの上部の余白を指定します。値は0以上である必要があります。

LINES AT BOTTOM

integer-11またはdata-name-8の値は、論理ページの下部余白を指定します。値は0以上である必要があります。

以下の図は、LINAGE節の各部分を説明するものです。

figure dd linage clause
Figure 14. 論理ページ
  • LINES AT TOP句、LINES AT BOTTOM句を指定しない場合、この値は0を仮定します。

  • FOOTING句を省略する場合、ページ本体の値と同じです。(integer-8またはdata-name-5)

  • OPEN OUTPUTステートメントが実行される時点で、integer-8、integer-9、integer-10、integer-11の値が指定されている場合、それらの値はプログラムの実行中に論理ページを構成する値として使用されます。

  • OPEN OUTPUTステートメントが実行される時点で、data-name-5、data-name-6、data-name-7、data-name-8の値が指定されている場合、それらの値は最初の論理ページを構成します。以降、WRITEステートメントが実行され、ページが移る時点で、data-name-5、data-name-6、data-name-7、data-name-8の値はまた新しい論理ページを構成します。

  • SDに記述されたLINEAGE節は、構文チェックだけが行われ、実行には影響を与えません。

  • ファイルごとにLINAGE-COUNTER特殊レジスターが存在します。

1.1.9. RECORDING MODE節

RECORDING MODE節は、ファイルの物理レコードの形式を指定します。VSAMファイルに対しては無視されます。

項目 説明

Recording mode F(fixed)

すべてのレコードが同じ長さを持ちます。

Recording mode V(variable)

レコードは可変長を持ちます。

1.1.10. CODE-SET節

CODE-SET節は、磁気テープ・ファイルの文字コードを指定します。この構文は構文チェックは行われますが、実行には影響を与えません。