REWRITE(書換え)文は,大記憶ファイル中に存在するレコードを論理的に書き換える.
【書き方】
(1) |
レコード名-1と一意名-1とは,同じ記憶領域を参照してはならない. |
(2) |
レコード名-1は,データ部のファイル節で指定したレコードの名前とする.ファイル名で修飾してもよい. |
(1) |
レコード名-1に関連するファイル名のファイルは,大記憶ファイルでなければならない.また,REWRITE文を実行する前に入出力両用モードで開いておかなければならない. |
||||
(2) |
REWRITE文を実行する前に,関連するファイルに対して実行された最後の入出力文はREAD(読込み)文であって,それが成功していなければならない.入出力管理システムは,READ文によって読み込まれたレコードを論理的に書き換える. |
||||
(3) |
REWRITE文の実行が成功すると,そのレコードはレコード領域中で使用不能になる.ただし,レコード名-1に関連するファイル名がSAME RECORD AREA(レコード領域の共用)句で指定されている場合には,REWRITE文によってレコードが使用不能になることはない.その論理レコードは,レコード名-1に関連するファイルと同様に,同じSAME RECORD AREA句で参照される他のファイル,つまり出力ファイルのレコードとして,そのプログラムで使用可能である. |
||||
(4) |
FROM(から)指定のあるREWRITE文の実行結果は,以下に示す文をこの順で実行したものと等しい.
|
||||
(5) |
REWRITE文の実行を完了した後,SAME RECORD AREA句の指定がある場合を除いて,レコード名-1の領域の情報は使用不能になる.ただし,一意名-1の領域の情報は使用可能である. |
||||
(6) |
ファイル位置指示子は,REWRITE文の実行によっては変更されない. |
||||
(7) |
REWRITE文の実行により,レコード名-1に関連するファイル名の入出力状態の値が更新される. |
||||
(8) |
REWRITE文の実行によってレコードが入出力管理システムに渡される. |
||||
(9) |
END-REWRITE(REWRITE文の終わり)は,REWRITE文の範囲を区切る. |