E1 コマンド(レコードの削除)

このドキュメントでは、次のトピックについて説明します。


機能および使用

E1 コマンドは 1 レコードを削除します。

削除するレコードのファイル番号と ISN を指定しなければなりません。Adabas は、データストレージからレコードを削除し、アソシエータに必要な更新を行います。

ユーザーが ET ユーザーであり、削除レコードがそのユーザーに対してホールド状態でない場合は、Adabas が、削除レコードをそのユーザーに対してホールド状態にします。レコードが別のユーザーに対してホールド状態である場合は、RETURN オプションを使用しないかぎり、レコードが使用可能となるまで E1 コマンドが待ち状態となります。RETURN オプションが指定されていれば、レスポンスコード 145 が返ります。

ユーザーは ADAM(Adabas ダイレクトアクセスメソッド)キーを通じてレコードに位置づけることもできます。この場合、コマンドオプション 2 を V に設定する必要があり、サーチバッファおよびバリューバッファには ADAM ディスクリプタ名および ADAM キーがそれぞれ格納される必要があります。この方法を使用する場合、コントロールブロックの ISN フィールドが出力フィールドになります。

E1 コマンドは、ファイルをリフレッシュするのに使用できます。リフレッシュによりファイルを 0 件状態にします。ファイルをリフレッシュしたい場合は、コントロールブロックの ISN フィールドに 0 を、コマンド ID フィールドには空白をセットする必要があります。

graphics/e1_1.png

E1 Command, Procedure Flow

graphics/e1_2.png

E1 Command, Procedure Flow (continued)

graphics/e1_3.png

E1 Command, Procedure Flow (continued)

コントロールブロック

Field フォーマット  
コールタイプ B F/U
予約(内部使用)   -/-
コマンドコード A F/U
コマンド ID B F/U
File Number B F/U (1)
Response Code B F/A (1)
ISN B F/U
サーチバッファ長(ACB のみ) B F/U
バリューバッファ長(ACB のみ) B F/U
コマンドオプション 1 A F/U
コマンドオプション 2 A F/U
アディション 2 A、B -/A
アディション 3 A F/A
コマンドタイム B -/A
ユーザーエリア   F/U

バッファエリア

バッファ  
フォーマットバッファ –/–
レコードバッファ –/–
サーチバッファ F/U (2)
バリューバッファ F/U (2)
ISN バッファ –/–
フォーマット:
A 英数字
B 2 進数
x/y Adabasコール前/後 - xとyは、値を取ることができます。
A Adabas によって設定
F ユーザーによって設定
U Adabas コール後も変更なし
- 使用しません

(1)このフィールドの意味は、Call タイプに指定された値によって異なります。詳細については、「Adabas の呼び出し」の「コントロールブロック」を参照してください。
(2)V オプションを使用する場合のみ必要

コントロールブロック

コマンドコード

E1

コマンド ID

ファイルをリフレッシュする場合は、コマンド ID を空白に設定する必要があります。

File Number

このフィールドには、削除するレコードを持つファイルの番号を指定します。

Response Code

このフィールドには、コマンドに対するレスポンスコードが返されます。レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。

ISN

削除するレコードの ISN を示します。

ADAM オプションが使用われた場合は、Adabas が、削除されたレコードの ISN を返します。

ファイルをリフレッシュする場合は(レコードのゼロ件状態にリセット)、このフィールドをゼロにセットしなければなりません。

サーチバッファ長(ACB のみ)

サーチバッファ長(バイト単位)を示します。ユーザープログラムで定義するサーチバッファエリアは、ここに指定する長さ以上である必要があります。

バリューバッファ長(ACB のみ)

バリューバッファ長(バイト単位)を示します。ユーザープログラムで定義するバリューバッファエリアは、ここに指定する長さ以上である必要があります。

コマンドオプション 1

このフィールドに R を指定すると、RETURN オプションを使用することを示します。E1 コマンドを発行し、削除対象レコードが他のユーザーによってホールドされていると、そのレコードが使用可能になるまでユーザーは待ち状態にならずに、レスポンスコード 145 が返されます。

コマンドオプション 2

このフィールドが V のときは、ADAM オプションを使用していることを示します。値(ADAM キー)は ADAM ディスクリプタファイルに提供されるだけです。キーの値はバリューバッファで指定され、ディスクリプタ名はサーチバッファで指定されます。ADAM オプションを使用する場合、ISN フィールドが出力フィールドになります。

指定した ADAM キーを持つレコードが見つからない場合はレスポンスコード 52 が返ります。

アディション 2

一部のレスポンスコードでは、Adabas はこのフィールドの詳細情報を返します。詳細については、『メッセージおよびコードマニュアル』を参照してください。

アディション 3

セキュリティ保護のためのパスワードを指定します。

使用するファイルがセキュリティ保護されていない場合、このフィールドは空白にしておきます。ファイルがセキュリティ保護されている場合は、ユーザーは該当するパスワードを指定する必要があります。

指定したパスワードを保護するため、このフィールドはコマンド処理時に空白にセットされます。

サーチバッファ

ADAM オプション(コマンドオプション 2=V)を使用する場合、サーチバッファには ADAM ディスクリプタのフィールド指定が含まれます。フィールド名が ADAM キーでない場合は、レスポンス 61 が返されます。

バリューバッファ

ADAM オプション(コマンドオプション 2=V)を使用する場合、バリューバッファには ADAM キーの値が含まれます。

例 1:

ファイル 2 の ISN 4 を削除します。

コントロールブロック:

Command Code          E1
File Number           2 (record to be deleted is in file 2)
ISN                   4 (record with ISN 4 to be deleted)
Command Option 1      b (Return Option not to be used)
Additions 3           Password (file 2 is security protected)

例 2:

ISN の集合(FIND コマンドですでに選択されているもの)をファイル 1 から削除します。

コントロールブロック:

Command Code          E1
File Number           1 (record to be deleted is in file 1)
ISN                   n (ISN resulting from previous Find)
Command Option 1      b (Return Option not to be used)
Additions 3           bbbbbbbb (file is not security protected)

FIND コマンドで得た各 ISN に対し、繰り返し E1 コマンドを発行します。