ILE COBOL 解説書
形式 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
が参照するデータ項目へ移動されたはずの値による。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]