1. ファイル記述項目
環境部のSELECT節で定義したファイルについて説明の開始を示します。FileDescription (FD)、またはSortFileDescription (SD)の後に、ファイル名を記述します。
-
形式1
Figure 1. ファイル記述項目 - 形式1
Figure 2. ファイル記述項目の形式1 - 節1
Figure 3. ファイル記述項目の形式1 - 節2 -
形式2
Figure 4. ファイル記述項目 - 形式2
Figure 5. ファイル記述項目の形式2 - 節 -
形式3
Figure 6. ファイル記述項目 - 形式3
Figure 7. ファイル記述項目の形式3 - 節 -
形式4
Figure 8. ファイル記述項目 - 形式4
Figure 9. ファイル記述項目の形式4 - 節1
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.4. RECORD節
RECORD節を使用する場合、レコードのサイズは、レコード内に記述されたデータ項目のUSAGEに関係なく、レコードの保存に必要なバイト数で記述する必要があります。たとえば、10文字のDBCS文字で構成されたレコードがあるとした場合、RECORD節はRECORD CONTAINS 20 CHARACTERSと記述しなければなりません。RECORD節を省略すると、コンパイラーはレコード記述からレコード長を決定します。
形式1
形式1は、固定長レコードのサイズを指定します。
| 項目 | 説明 |
|---|---|
integer-3 |
レコードのサイズを正の整数で記述します。 |
形式2
形式2は、固定長または可変長レコードのサイズを指定します。
| 項目 | 説明 |
|---|---|
integer-4 |
レコードのサイズの最小値を正の整数で記述します。 |
integer-5 |
レコードのサイズの最大値を正の整数で記述します。 |
|
integer-4とinteger-5が同じである場合、固定長レコードになります。 |
形式3
形式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.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節の各部分を説明するものです。
-
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特殊レジスターが存在します。