連続データ・セットを作成し終えれば、順次入力、順次出力、または、直接アクセス装置上のデータ・セットの場合は、更新を行うために、その連続データ・セットにアクセスするためのファイルをオープンする ことができます。連続データ・セットにアクセスし、それを更新するプログラムの例については、図 14 を参照してください。
出力用のファイルをオープンし、その終わりにレコードを追加して データ・セットを拡張したい場合、DD:ddname 環境変数内に APPEND(Y) を 指定する必要はありません。これがデフォルトであるためです。APPEND(N) を指定すると、データ・セットは上書きされます。更新用のファイルをオープンしても、その既存の順序のままでレコードを 更新することのみが可能であり、レコードを挿入したければ、新たにデータ・セットを 作成しなければなりません。既存のデータ・セットのレコード長を変更することはできません。
SEQUENTIAL UPDATE ファイルで連続データ・セットにアクセスする には、READ ステートメントを使ってレコードを取り出してから、REWRITE ステートメントでそれを更新しなければなりません。しかし、検索された各レコードの再書き込みは必要ありません。REWRITE ステートメントは、常に、最後に読み取られたレコードを更新します。
次のような場合を考慮します。
read file(F) into(A);
.
.
.
read file(F) into(B);
.
.
.
rewrite file(F) from(A);
REWRITE ステートメントによって、2 つ目の READ ステートメントで読み取った レコードが更新されます。最初のステートメントで読み取ったレコードは、2 つ目の READ ステートメントが実行さ れると再書き込みできません。
データ・セットにアクセスするには、OPEN ステートメントの TITLE オプションまたは DD:ddname 環境変数を用いて、PL/I に対してデータ・セットを識別する必要があります。
表 16 は、連続データ・セットにアクセスして、値を更新するためのステートメントとオプションを示しています。
ユーザー・アプリケーションで既存の RECORD ファイルにアクセスするには 、PL/I はそのファイルのレコード長を入手する必要があります。レコード長の値は、次のいずれかの入手源から得ることができます。
次の場合、PL/I は、INPUT ファイルのデフォルトのレコード長を使用します。