キーがないレコード ファイルのことを連続ファイルと呼びます。そのようなファイルのレコードは、書き込まれた順序でのみ読み取ることができます。したがって、連続ファイルのレコードは、ファイル内の最初のレコードから順番に 1 つずつしか読み取れません。連続ファイルのレコードは書き換え可能ですが、書き換えできるのは読み込まれた直後のみになります。
連続ファイルは、ENVIRONMENT 属性の CONSECUTIVE オプションを含めることで宣言します。次に例を示します。
DECLARE ULOG RECORD OUTPUT FILE ENVIRONMENT(CONSECUTIVE RECSIZE(130));
この例では、RECSIZE オプションですべてのレコードの長さが 130 バイトに指定されています。RECSIZE を省略した場合は、可変長レコードが書き込まれることがあります。その場合、レコードの長さを示す情報はファイルに自動で記録されません。ファイルを読み取るプログラム側で、各 READ 文によって読み取るバイト数を特定できる必要があります。
例:
CONFILE: PROCEDURE OPTIONS(MAIN); DECLARE TEST RECORD OUTPUT FILE ENV(CONSECUTIVE); DECLARE REC1 CHAR(5) INIT('AAAAA'); DECLARE REC2 CHAR(10) INIT('BEEBBBBBBB'); OPEN FILE(TEST) TITLE('testdata'); WRITE FILE(TEST) FROM(REC1); WRITE FILE(TEST) FROM(REC2); WRITE FILE(TEST) FROM(REC1); CLOSE FILE(TEST); END CONFILE;
このプログラムで得られる testdata ファイルには次の 20 バイトが含まれます。
AAAAABBBBBBBBBBAAAAA