連続データ・セットを作成し終えれば、順次入力、順次出力、 または、直接アクセス装置上のデータ・セットの場合は、更新を行うために、 その連続データ・セットにアクセスするためのファイルをオープンする ことができます。図 31 は、連続データ・セットにアクセスし、 それを更新するプログラムの例です。 出力用のファイルをオープンして、その終わりにレコードを追加して データ・セットを拡張するには、DD ステートメント内に DISP=MOD を 指定しなければなりません。 それを指定しないと、そのデータ・セットは上書きされます。 更新用のファイルをオープンしても、その既存順にしかレコードを 更新することはできず、レコードを挿入したければ、新たにデータ・セットを 作成しなければなりません。表 17 は、連続データ・セットにアクセスして、 値を更新するためのステートメントとオプションを示しています。
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 ステートメントが実行さ れると再書き込みできません。
磁気テープ上の連続データ・セットの場合、末尾へのレコードの追加を除き、更新はできません。 レコードを置換または挿入するには、データ・セットを読み取り、更新したレコードを新規データ・セットに書き込む必要があります。
磁気テープ上の連続データ・セットの読み取りは、順方向にのみ行うことができます。 逆方向読み取りはサポートされていません。
データ・セットにアクセスするには、DD ステートメント でそのデータ・セットをオペレーティング・システムに識別する必要があります。表 21 は、連続データ・セットに アクセスするのに必要な DD ステートメントのパラメーターを要約しています。
| パラメーター | 指定すべき事項 | 必要な場合 |
|---|---|---|
|
DSNAME= DISP= |
データ・セットの名前 データ・セットの 後処理 |
常時 |
| UNIT= または VOLUME=REF= | 入力装置 | データ・セットがカタログされていない場合 (すべての装置) |
| VOLUME=SER= | ボリューム通し番号 | データ・セットがカタログされていない場合 (直接アクセス) |
| DCB=(BLKSIZE= | ブロック・サイズ1 | データ・セットに標準ラベルが付いていない場合 |
|
注:
1 または、ENVIRONMENT 属性を用いれば、
PL/I プログラム内でブロック・サイズを指定することもできます。 |
||
次に、DD ステートメントに入れるべき必須情報と、 ユーザーが与えることのできるオプショナル情報のうちのいくつかについて説明します。 ただし、ここで述べる内容は、入力ストリームのデータ・セットには当てはまりません。