RETURN ステートメント
RETURN ステートメントは、ソート処理またはマージ処理の最終フェーズから
OUTPUT PROCEDURE へレコードを渡します。
RETURN ステートメントは、SORT ステートメントまたは MERGE ステートメン
トと関連付けられた OUTPUT PROCEDURE 句の範囲内でのみ使用することができ
ます。

フォーマット: RETURN ステートメント
>>-RETURN--ファイル名-1---+--------+--+------------+------------->
'-RECORD-' '-INTO--ID-1-'
>--+----------------------------------+------------------------>
'-+----+--END--命令ステートメント-1--'
'-AT-'
>--+---------------------------------------+--+------------+--><
'-NOT--+----+--END--命令ステートメント-2--' '-END-RETURN-'
'-AT-'
OUTPUT PROCEDURE 句の中では、
少なくとも 1 つの RETURN ステートメントを指定しなければなりません。
RETURN ステートメントが実行されると、ファイル名-1 の次の位置にあるレコードが OUTPUT PROCEDURE 句による処理のため使用可能になります。
- ファイル名-1
- データ部の SD 項目に記述されていなければなりません。
ファイル名-1 に関連付けられた複数のレコード記述がある場合、それらのレコードは自動的に同じストレージを共用します。つまり、
そのストレージは暗黙に再定義されます。RETURN ステートメントを実行した後は、現行レコードの内容のみが使用可能です。現行レコードの長さを超えるデータ項目がある場合には、それらの内容は未定義となります。
- INTO 句
- ファイル名-1 に関連付けられたレコード記述が 1 つだけしかない場合、または ID-1 によって
参照されるすべてのレコードとデータ項目に基本英数字項目または英数字グループ項目が記述されている場合、
INTO 句を指定した RETURN ステートメントの実行結果は、
指定された順序で以下の規則を適用するのと同じことになります。
- INTO 句を指定しないだけであり、同じ RETURN ステートメントを実行します。
- 現行のレコードを CORRESPONDING 句を伴わない MOVE ステートメントの規則に従って、
そのレコード域から ID-1 によって指定された領域へ移動します。現在のレコードのサイズは、RECORD 節で指定された規則によって決定されます。
ファイル記述項目が RECORD IS VARYING 節を含む場合には、暗黙の移動はグループ移動になります。
RETURN ステートメントの実行が正しく行われなかった場合には、
暗黙の MOVE ステートメントの実行は行われません。
ID-1 に関連する添え字付けまたは参照変更があれば、レコードが読み取られた後、
データ項目に移動される直前に、それは評価されます。レコードは、そのレコード域と ID-1 によって参照されるデータ項目の両方で使用可能です。
ファイル名-1 に関連付けられたレコード記述が複数あり、それらのすべてに英数字グループ項目または基本英数字項目が記述されていない場合は、以下の規則が適用されます。
- ファイル名-1 によって参照されるファイルに可変長レコードが含まれている場合
は、グループ移動が行われます。
- ファイル名-1 で参照したファイルが固定長レコードを含んでいる場合は、最大数の文字位置を指定しているレコードを送り出しフィールド記述として使用して、MOVE ステートメントの規則に従って移動が行われます。そのようなレコードが複数存在する場合には、
選択される送り出しフィールド・レコードは、該当するレコードのうちファイル名-1 の記述のもとで最初に現れるレコードとなります。
ID-1 ID-1 は、選択された送り出しレコード記述項目に対して、MOVE ステートメントの規則に従う有効な受け取りフィールドでなければなりません。
ファイル名-1 に関連付けられたレコード域と ID-1 は、
同じストレージ域を占めることはできません。
AT END 句
AT END 句で指定された命令ステートメントは、すべてのレコードがファイル名-1
から戻された後で実行されます。これが実行されると、
それ以上の RETURN ステートメントを現在の出力プロシージャーとして実行することはできません。
RETURN ステートメントの実行中に AT END 条件が発生しなかった場合は、レコ
ードが使用可能にされた後、および INTO 句を指定したことで生じた暗黙の
MOVE の実行後に、NOT AT END 句で指定された命令ステートメントに制御が移
されます。AT END 条件が発生した場合は、制御は RETURN ステートメントの終わりに移されます。
END-RETURN 句
この明示的範囲終了符号は、RETURN ステートメントの範囲を区切るために使用されます。
END-RETURN 句を使用することによって、
条件的な RETURN ステートメントを他の条件ステートメントの中にネストすることができます。
END-RETURN 句は、命令の RETURN ステートメントと共に使用することもできます。
詳しくは、範囲区切りステートメントを参照してください。
|
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)