RECORD 文節 - 形式 2
形式 2 は、可変長レコードを取り扱うときの推奨形式です。
RECORD 文節 - 形式 2 >>-RECORD--+----+--VARYING--+----+--+------+--------------------> '-IS-' '-IN-' '-SIZE-' >--+------------------+--+------------+--+------------+---------> '-+------+--整数-4-' '-TO--整数-5-' '-CHARACTERS-' '-FROM-' >--+-------------------------------+---------------------------->< '-DEPENDING--+----+--データ名-1-' '-ON-'
- 整数-4
- ファイルの任意のレコードに含まれる文字位置の最小数を指定します。 整数-4 を指定しないと、ファイルの任意のレコードに含まれる文字位置の最小数は、そのファイルのレコード用に記述された最小文字位置数になります。 整数-4 を指定するなら、ゼロ以外で、整数-5 未満にしなければなりません。
- 整数-5
- ファイルの任意のレコード内の文字位置の最大数を指定します。 整数-5 を指定しないと、ファイルの任意のレコードに含まれる文字位置の最大数は、そのファイルのレコード用に記述された最大文字位置数になります。
- データ名-1
- 符号のない基本整数でなければなりません。
データ名-1 が指定された場合
- ファイルに対して RELEASE、REWRITE、または WRITE ステートメントを実行する前に、レコード内の文字位置数を、データ名-1 が参照するデータ項目に入れておかなければなりません。
- DELETE、RELEASE、REWRITE、START、または WRITE ステートメントを実行しても、または READ または RETURN ステートメントが失敗しても、データ名-1 が参照するデータ項目の内容は変わりません。
- ファイルに対する READ または RETURN ステートメントの実行が正常に完了すると、データ名-1 が参照するデータの内容に、読み取られたばかりのレコード内の文字位置数が示されます。
レコード記述に関連した文字位置数は、すべての基本データ項目 (再定義と名前変更を除く) 内の文字位置数に、同期化に起因したすべての暗黙の FILLER を加算したもので判別されます。
テーブルが指定されていると、上記の合算にはレコードに記述されたテーブル・エレメントの最小数と最大数が使われて、レコード記述に関連した文字位置の最小数と最大数が判別されます。
書き込まれる論理レコード内の文字位置数が整数-4 以下または整数-5 以上であれば出力ステートメントは失敗し、RELEASE ステートメントの実行時を除いて、それに関連した入出力状況キーは、その条件の原因を示す値に設定されます。
RELEASE、REWRITE、または WRITE ステートメントの実行時のレコード内の文字位置数は、次のような条件で決まります。
- データ名-1 が指定されていれば、データ名-1 が参照するデータ項目の内容による。
- データ名-1 が指定されていなくて、レコードに可変長オカレンス・データ項目が入っていないときは、そのレコード内の文字位置数による。
- データ名-1 は指定されていないが、レコードに可変長オカレンス・データ項目が入っているときは、固定部分に、出力ステートメントの実行時のオカレンス数に記述されたテーブルの該当部分を加算したものによる。
READ ... INTO ステートメントまたは RETURN ... INTO ステートメントの実行時、暗黙の MOVE ステートメント内の送り出しデータ項目として関与する現行レコード内の文字位置数は、次のような条件で判別されます。
- データ名-1 が指定されていれば、データ名-1 が参照するデータ項目の内容による。
- データ名-1 が指定されていなければ、データ名-1 がもし指定されていればデータ名-1 が参照するデータ項目へ移動されたはずの値による。
