S8 コマンドは、同じファイルから作成された 2 つの ISN リストを AND、OR または NOT の論理演算子で結合します。 詳しくは「ISN リスト処理」を参照してください。
このドキュメントでは、次のトピックについて説明します。
S8 コマンドは、先の Sx コマンドで作成された 2 つの ISN リストに論理演算処理を行います。 どちらの ISN リストも、次の条件を満たす必要があります。
同じファイルから生成されています。
ISN 順になっています。
WORK データセットに格納されています。
両リストを作成するときにリストに割り当てたコマンド ID で識別できます。
ISN 順に並んでない S2 コマンドまたは S9 コマンドで作成された ISN リストは使用できません。
ISN リストを作成し、S8 コマンドを実行するまでの間に、これらの ISN リストに対する処理(アクセスまたは更新)を行ってはいけません。
S8 コマンドは、次の論理演算に使用できます。
演算子 | ISN 結果リストに格納される ISN の内容 |
---|---|
AND | 両方の ISN リスト |
OR | どちらか一方の ISN リスト |
NOT | 2 番目ではなく最初の ISN リスト |
実行結果の ISN は、コマンドオプションの指定やコマンド ID フィールドの設定に従って、ISN バッファに返されたり、ISN 昇順で WORK データセットに格納されたりします。
コマンド ID に空白やゼロ以外の値を指定して、SAVE ISN LIST オプションも同時に指定した場合、ISN 結果リストは ISN バッファと WORK データセットの両方に格納されます。
コマンド ID を指定しないで SAVE ISN LIST オプションを使用すると、ISN 結果リストは ISN バッファにのみ格納され、WORK データセットには格納されません。
このセクションでは、S8 コマンドの ACB インターフェイスダイレクトコールについて説明します。 本書には、次のトピックが含まれています。
ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。
フィールド | 位置 | フォーマット | Adabas コール前 | Adabas コール後 |
---|---|---|---|---|
1~2 | -- | -- | -- | |
コマンドコード | 3~4 | 英数字 | F | U |
コマンド ID | 5~8 | 英数字 | F | U |
ファイル番号 | 9~10 | バイナリ | F | U |
レスポンスコード | 11~12 | バイナリ | -- | A |
ISN | 13~16 | バイナリ | -- | A |
ISN 下限 | 17~20 | バイナリ | F | U |
ISN 数 | 21~24 | バイナリ | -- | A |
25~32 | -- | -- | -- | |
ISN バッファ長 | 33~34 | バイナリ | F | U |
コマンドオプション 1 | 35 | 英数字 | F | U |
コマンドオプション 2 | 36 | 英数字 | F | U |
アディション 1 | 37~44 | 英数字 | F | U |
45~48 | -- | -- | -- | |
アディション 3 | 49~56 | 英数字 | F | A |
57~72 | -- | -- | -- | |
コマンドタイム | 73~76 | バイナリ | -- | A |
ユーザーエリア | 77~80 | -- | -- | U |
バッファ | Adabas コール前 | Adabas コール後 |
---|---|---|
フォーマット | * | -- |
レコード | * | -- |
サーチ | * | -- |
バリュー | * | -- |
ISN | -- | A |
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
* | 使用しませんが、コールステートメントのパラメータリストに含める必要があります。 |
ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。
S8
コマンドオプション 1 フィールドにコマンドオプションを指定した場合、このフィールドに空白およびゼロ以外のコマンド ID を指定する必要があります。
i(コマンド ID の解放)オプションは、S8 実行時の最初の処理として、指定されたコマンド ID および関連する ISN リストを解放します。
H(SAVE ISN LIST)オプションを指定すると、S8 コマンドの実行結果の ISN リストが、指定したコマンド ID で格納されます。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。
詳しくは「ISN リスト処理」を参照してください。
このフィールドの第 1 バイトには 16 進数 'FF' にセットしないでください。
処理する 2 つの ISN リストの作成元となったファイルの番号を指定します。
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、アディション 2 フィールドの下位 2 バイトにサブコードを伴う場合があります。詳細は『Adabas メッセージおよびコード』を参照してください。
Adabas はこのフィールドに、ISN 結果リストの先頭 ISN を返します。 実行結果の ISN リストがない場合、このフィールドは変更されません。 これは最初のコールでも、Adabas WORK データセットから ISN を読み取るのに使用する後続のコールでも同様です。
このフィールドを最初の Sx コールで使用すると、ISN 結果リストが、このフィールドに指定した ISN より大きい ISN に制限されます。 このフィールドをゼロにすると、Adabas は条件に合った ISN をすべて返します。
また、このフィールドは、Adabas WORK データセットからセーブされた ISN リストの ISN グループを取得するときにも使用します。
最初の S8 コールの結果として ISN リストに入る ISN の数が返されます。
また、Adabas WORK データセットから ISN を取得する後続の S8 コールの結果として、ISN バッファに返された ISN の数が表示されます。
ISN バッファ長(バイト単位)。 この長さによって ISN バッファに配置される ISN の数が決定します。
このフィールドをゼロにすると、ISN は ISN バッファに追加されません。 L1 または L4 コマンドの GET NEXT オプションを指定して ISN 結果リストを読み込む場合、または条件に合ったレコード数を求めるためだけにコマンドを発行する場合、このフィールドはゼロにする必要があります。
ゼロ以外の値を指定する場合は、4 の倍数にする必要があります。 それ以外の場合、長さには 4 の倍数で次に小さい整数が設定されます。
オプション | 説明 |
---|---|
H(ISN リストの格納) | S8 コマンドを実行して得られた全 ISN リストを、指定したコマンド ID で Adabas ワークに格納します。 正しいコマンド ID を指定する必要があります。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。 |
I | S8 コマンド実行中の最初の処理として、コマンド ID フィールドに指定されているコマンド ID(CID)値とすべての関連 ISN リストを解放します。 コマンド ID が解放されるのは ISN リストテーブル内だけなので、 同じコマンド ID が ISN 結果リストを識別するのに再度使用されます。 |
このフィールドに入力された値は、ISN リストに行う論理演算を示します。
オプション | オペレーション | ISN 結果リストに格納される ISN の内容 |
---|---|---|
D | AND | 両方の ISN リスト |
O | OR | いずれかの ISN リスト |
N | NOT | 2 番目ではなく最初の ISN リスト |
このフィールドには、処理対象の ISN リストを識別するコマンド ID を(コマンド ID ごとに 4 バイト)指定しなければなりません。 各 ISN リストは、現在 Adabas WORK データセットに格納されていて、同一ファイルの ISN で構成されている必要があります。
このフィールドは、Adabas Security または ADAESI パスワードを指定するため使用します。 データベース、ファイル、またはフィールドがセキュリティ保護されている場合は、有効なセキュリティパスワードまたは ADAESI パスワードをユーザーは指定する必要があります。 パスワードを保護するために、コマンド処理時にアディション 3 フィールドに空白がセットされます。
2 つの ISN リストのいずれかに属する ISN を持つ第 3 の ISN リストを生成するために、2 つのリスト間に論理 OR 演算を行います。 処理する ISN リストは、コマンド ID U020 と U021 の下で Adabas WORK データセットに格納したものです。 ISN 結果リストはコマンド ID U999 の下で Adabas ワークに格納します。 SAVE ISN LIST オプションを使用します。
コマンドコード | S8 | |
---|---|---|
コマンド ID | U999 | ISN 結果リストをコマンド ID U999 の下で格納します。 |
ISN 下限 | 0 | 実行結果の全 ISN を選択します。 |
ISN バッファ長 | 0 | ISN バッファには ISN は返されません |
コマンドオプション 1 | H | SAVE ISN LIST オプション使用 |
コマンドオプション 2 | O | OR 演算を行います。 |
アディション 1 | U020U021 | コマンド ID U020 と U021 で識別される ISN リストを処理します。 |
アディション 3 | bbbbbbbb(空白) | ファイルはセキュリティ保護されていません |
このセクションでは、S8 コマンドの ACBX インターフェイスダイレクトコールについて説明します。 本書には、次のトピックが含まれています。
ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。
フィールド | 位置 | フォーマット | Adabas コール前 | Adabas コール後 |
---|---|---|---|---|
1~2 | --- | --- | --- | |
バージョンインジケータ | 3~4 | バイナリ | F | U |
5~6 | --- | --- | --- | |
コマンドコード | 7~8 | 英数字 | F | U |
9~10 | --- | --- | --- | |
レスポンスコード | 11~12 | バイナリ | --- | A |
コマンド ID | 13~16 | 英数字/バイナリ | F | U |
データベース ID | 17~20 | 数値 | F | U |
ファイル番号 | 21~24 | 数値 | F | U |
25~28 | --- | --- | --- | |
ISN | 29~32 | バイナリ | --- | A |
33~36 | --- | --- | --- | |
ISN 下限 | 37~40 | バイナリ | F | U |
41~44 | --- | --- | --- | |
ISN 数 | 45~48 | バイナリ | --- | A |
コマンドオプション 1 | 49 | 英数字 | F | U |
コマンドオプション 2 | 50 | 英数字 | F | U |
51~56 | --- | --- | --- | |
アディション 1 | 57~64 | 英数字/バイナリ | F | U |
65~68 | --- | --- | --- | |
アディション 3 | 69~76 | 英数字/バイナリ | F | A |
77~114 | --- | --- | --- | |
エラーサブコード | 115~116 | バイナリ | --- | A |
117~144 | --- | --- | --- | |
コマンドタイム | 145~152 | バイナリ | --- | A |
ユーザーエリア | 153~168 | 該当なし | --- | U |
--- | 169~193 | 操作不可 | --- | --- |
ABD とバッファ | Adabas コール前 | Adabas コール後 |
---|---|---|
ISN | --- | A |
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
--- | 未使用 |
ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。
F2
S8
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。
コマンドオプション 1 フィールドにコマンドオプションを指定した場合、このフィールドに空白およびゼロ以外のコマンド ID を指定する必要があります。
"I"(コマンド ID の解放)オプションは、S8 実行時の最初の処理として、指定されたコマンド ID および関連する ISN リストを解放します。
"H"(SAVE ISN LIST)オプションを指定すると、S8 コマンドの実行結果の ISN リストが、指定したコマンド ID で格納されます。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。
詳しくは「ISN リスト処理」を参照してください。
このフィールドの第 1 バイトには 16 進数 'FF' にセットしないでください。
このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。
このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。
このフィールドは、処理する 2 つの ISN リストの作成元となったファイルの番号を指定するのに使用します。
このフィールドは 4 バイトのバイナリフィールドですが、ファイル番号はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
Adabas はこのフィールドに、ISN 結果リストの先頭 ISN を返します。 実行結果の ISN リストがない場合、このフィールドは変更されません。 これは最初のコールでも、Adabas WORK データセットから ISN を読み取るのに使用する後続のコールでも同様です。
このフィールドを最初の Sx コールで使用すると、ISN 結果リストが、このフィールドに指定した ISN より大きい ISN に制限されます。 このフィールドをゼロにすると、Adabas は条件に合った ISN をすべて返します。
ACBXISL フィールドは、8 バイトの ACBXISLG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISLG フィールドの上位部分には、バイナリの 0 を設定します。
また、このフィールドは、Adabas WORK データセットからセーブされた ISN リストの ISN グループを取得するときにも使用します。
最初の S8 コールの結果として ISN リストに入る ISN の数が返されます。
また、Adabas WORK データセットから ISN を取得する後続の S8 コールの結果として、ISN バッファに返された ISN の数が表示されます。
オプション | 説明 |
---|---|
H(ISN リストの格納) | S8 コマンドを実行して得られた全 ISN リストを、指定したコマンド ID で Adabas ワークに格納します。 正しいコマンド ID を指定する必要があります。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。 |
I | S8 コマンド実行中の最初の処理として、コマンド ID フィールドに指定されているコマンド ID(CID)値とすべての関連 ISN リストを解放します。 コマンド ID が解放されるのは ISN リストテーブル内だけなので、 同じコマンド ID が ISN 結果リストを識別するのに再度使用されます。 |
このフィールドに入力された値は、ISN リストに行う論理演算を示します。
オプション | オペレーション | ISN 結果リストに格納される ISN の内容 |
---|---|---|
D | AND | 両方の ISN リスト |
O | OR | いずれかの ISN リスト |
N | NOT | 2 番目ではなく最初の ISN リスト |
このフィールドには、処理対象の ISN リストを識別するコマンド ID を(コマンド ID ごとに 4 バイト)指定しなければなりません。 各 ISN リストは、現在 Adabas WORK データセットに格納されていて、同一ファイルの ISN で構成されている必要があります。
このフィールドは、Adabas Security または ADAESI パスワードを指定するため使用します。 データベース、ファイル、またはフィールドがセキュリティ保護されている場合は、有効なセキュリティパスワードまたは ADAESI パスワードをユーザーは指定する必要があります。 パスワードを保護するために、コマンド処理時にアディション 3 フィールドに空白がセットされます。
コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。
S8 コマンドには、次のバッファが適用されます。
これが ACB インターフェイスダイレクトコールであり、フォーマットバッファが指定されていない場合は、処理エラーが発生します。ACB インターフェイスダイレクトコールはセットシーケンスにバッファが指定されていることを要求します。 ACBX インターフェイスダイレクトコールの場合は、フォーマットバッファを指定する必要はありません。
ACB インターフェイスダイレクトコールの場合は、レコードバッファを指定しないと、処理エラーが発生します。ACB インターフェイスダイレクトコールの処理では、セットシーケンスにバッファが指定されていることが前提になっています。 ACBX インターフェイスダイレクトコールの場合は、レコードバッファを指定する必要はありません。
ACB インターフェイスダイレクトコールの場合は、サーチバッファを指定しないと、処理エラーが発生します。ACB インターフェイスダイレクトコールの処理では、セットシーケンスにバッファが指定されていることが前提になっています。 ACBX インターフェイスダイレクトコールの場合は、サーチバッファを指定する必要はありません。
ACB インターフェイスダイレクトコールの場合は、バリューバッファを指定しないと、処理エラーが発生します。ACB インターフェイスダイレクトコールの処理では、セットシーケンスにバッファが指定されていることが前提になっています。 ACBX インターフェイスダイレクトコールの場合は、バリューバッファを指定する必要はありません。
Adabas は、このバッファに ISN 結果リストを配置します。 各 ISN は 4 バイトの 2 進数で返されます。 ISN は ISN 順に返されます。
ISN バッファが実行結果の全 ISN を入れるのに十分な大きさでなく、しかも空白やゼロ以外のコマンド ID を使用した場合、Adabas はオーバーフローした ISN を WORK データセットに格納します。 これらの ISN は、その後同じコマンド ID の Sx コールで読み込むことができます。 詳しくは「ISN リスト処理」を参照してください。