IBM Extension
IBM Extension

トランザクション (サブファイル) 形式

REWRITE ステートメントは、すでにサブファイル内に存在するサブファイル・レコードを置き換える場合に使用されます。

構文図を読む構文図をスキップする
REWRITE ステートメント - 形式 2 - トランザクション (サブファイル)

>>-REWRITE SUBFILE--レコード名-1---+--------------------+------->
                                   '-FROM--ID-1---------'   

>--+----------------------------------+------------------------->
   '-FORMAT--+----+--+-ID-2---------+-'   
             '-IS-'  '-リテラル-1---'     

>--+------------------------------------+----------------------->
   '-TERMINAL--+----+--+-ID-3---------+-'   
               '-IS-'  '-リテラル-2---'     

>--+---------------------------------------+-------------------->
   '-+-INDICATOR--+--+-----+--ID-4---------'   
     +-INDICATORS-+  +-IS--+                   
     '-INDIC------'  '-ARE-'                   

>--+------------------------------------------+----------------->
   '-INVALID--+-----+--命令ステートメント-1---'   
              '-KEY-'                             

>--+----------------------------------------------+------------->
   '-NOT INVALID--+-----+--命令ステートメント-2---'   
                  '-KEY-'                             

>--+-------------+----------------------------------------------><
   '-END-REWRITE-'   

レコード名-1 によって参照されるレコードの文字桁数は、置き換えられるレコードの文字桁数と等しくなければなりません。 再書き込み操作に先立って、レコードの読み取り操作を正常に実行しなければなりません。 サブファイル内の置き換えられるレコードは、直前の読み取り操作でアクセスされたレコードです。
FORMAT 句
トランザクション・ファイルの場合には、それぞれ異なる形式を持つ複数のデータ・レコードを同時に活動状態にすることができます。 FORMAT 句を指定する場合には、システムに定義されている有効な形式名を指定しなければなりません。 また、同じ形式のデータ・レコードに対して入出力操作を実行しなければなりません。 形式が無効な名前であるかまたは存在しない場合には、FILE STATUS データ項目 (指定されている場合) の値が 9K に設定され、 レコード域の内容が未定義になります。
注:
  1. FORMAT 句に指定するレコード形式は、直前の読み取り操作でアクセスされたレコード形式でなければなりません。
  2. ID-2 の内容またはリテラル-1 は、直前の READ でアクセスされたサブファイル形式の名前でなければなりません。
TERMINAL 句
TERMINAL 句は、どのプログラム装置のサブファイルにレコードを再書き込みするのかを指示します。TERMINAL 句を指定する場合、リテラル-2 および ID-3 では、 トランザクション・ファイルによって獲得されたワークステーションを参照しなければなりません。 リテラル-2 または ID-3 がブランク桁である場合は、TERMINAL 句は無効です。 TERMINAL 句によって指定されるプログラム装置は、明示的または暗黙に獲得されていなければならず、関連付けられたサブファイルをもっていなければなりません。

リテラル-2 または ID-3 は、有効なプログラム装置名でなければなりません。 リテラル-2 を指定する場合には、10 文字以下の非数字にしなければなりません。 ID-3 を指定する場合は、10 文字以下の英数字データ項目を参照しなければなりません。

複数のプログラム装置を獲得しているトランザクション・ファイルから TERMINAL 句が省略された場合、使用されるサブファイルは、 そのトランザクション・ファイルの READ が試みられた最後のプログラム装置に関連付けられているサブファイルです。

REWRITE ステートメントを通信装置に対して使用することはできません。 REWRITE ステートメントを通信装置に対して使用すると、操作が失敗し、ファイル状況が 90 に設定されます。

INDICATOR 句、INDICATORS 句、INDIC 句
データ・レコードが再書き込みされるときに使用される標識を指定します。 標識は、データ・レコードについての情報と、それがプログラムに入力された方法を渡すために使用できます。

INDICATORS 句について詳しくは、「IBM® Rational® Development Studio for i: ILE COBOL プログラマーの手引き」の『トランザクショ ン・ファイル での標識の使用』を参照してください。

ID-4 は、OCCURS 文節なしで指定された基本ブール・データ項目か、または基本データ・ブールの項目が従属しているグループ項目でなければなりません。

INVALID KEY 句
再書き込み操作時に、RELATIVE KEY データ項目に含まれる値が、直前の読み取り操作からのレコードの相対レコード番号と一致しない場合は、INVALID KEY 条件が生じます。

該当する USE プロシージャーが指定されていないファイルについては、INVALID KEY 句を指定しなければなりません。 INVALID KEY 句が指定されておらず、USE プロシージャーも指定されていない場合は、望ましくない結果が生じることがあります。

NOT INVALID KEY 句
NOT INVALID KEY 句が指定されている REWRITE ステートメントの実行が正常に完了すると、制御権は、この句に関連する命令ステートメントに渡されます。
END-REWRITE 句
この明示範囲終了符号は、REWRITE ステートメントの範囲を区切る働きをします。 END-REWRITE 句を使用することによって、REWRITE 条件ステートメントを別の条件ステートメントにネストすることができます。 また、END-REWRITE 句は、REWRITE 命令ステートメントで使用することもできます。 詳細については 範囲区切りステートメントを参照してください。
End of IBM Extension
End of IBM Extension