バージョン 8.1.3
 —  コマンドリファレンス  —

S1、S2、S4 コマンド:レコードの検索

S1、S2、S4 の各コマンドは、検索条件を満たすレコードの数と ISN を返します。

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


機能および使用

S1、S2、S4 の各コマンドは、ある検索条件を満たすレコードを選択します。 これらのコマンドは、Adabas 拡張ファイルにも実行できます。

S1、S2、S4 の各コマンドを実行すると、条件を満たすレコードの個数およびそのレコードの ISN リストが得られます。 S1/S4 コマンドを使用すると、昇順にソートされた ISN が返されます。S2 コマンドを使用すると、ユーザーがアディション 1 フィールドに指定したソート順で ISN が返されます。 ソート順に関係なく、ISN は ISN バッファに返されます。

注意:
昇順でない ISN リストは、後続の S8 コマンドでは処理できません。

次の種類の検索が可能です。

検索条件は、ディスクリプタとして定義されていない 1 つ以上のフィールドで構成してもかまいません。 非ディスクリプタが使用されていると、Adabas はユーザーに返すレコードを判断するために、読み込み処理を実行します。 検索条件内にディスクリプタだけが使用されている場合、Adabas はアソシエータのインバーテッドリストを使ってこの条件を処理するため、読み込み処理は実行しません。

注意:
Adabas データベースにおける非ディスクリプタ値の検索は、メインフレームの場合とオープンシステムの場合とで、フィールド内の空値省略に関して違いがあります。 オープンシステムではフィールドが空値省略(NU)の場合、非ディスクリプタ値を検索したときに空値を含むレコードを返しません。メインフレームシステムでは、非ディスクリプタ値を検索したときにフィールドの空値省略(NU)は無視されます。 このときフィールドを非ディスクリプタ値の検索で使用する必要がある場合は、オープンシステムフィールドの空値省略(NU)オプションを解除してこの問題を解決することをお勧めします。

有効なコマンド ID を指定した場合、Adabas は最初の S1、S2、S4 の各コマンドで ISN バッファに入りきれなかった ISN を Adabas ワークに格納します。 オーバーフローした ISN は、同じコマンド ID を指定した S1、S2、S4 の各コマンドで ISN バッファに戻すことができます。

Adabas は、オーバーフローした ISN リストの最後にある ISN がユーザーに返されたときにそのリストを解放します。 ユーザーが後の処理のために全 ISN リストを保持する必要がある場合は、SAVE ISN LIST オプションを使用できます。 このオプションを指定すると、全 ISN リストが Adabas ワーク上に格納されます。 この ISN リストは、RC、CL またはリリース CID オプション付き Sx コマンドが発行されるか、または Adabas セッションが終了するまで解放されません。

ユーザーが L1/L4 コマンドの GET NEXT オプションを使用して ISN で識別されるレコードを読み込むときは、ISN バッファエントリも SAVE ISN LIST オプションも必要ありません。 この場合、L1/L4 コマンドは、Adabas が格納した ISN リストから自動的に ISN を読み込みます。

フォーマットバッファにフィールド名を入れることにより、ユーザーは ISN 結果リストの最初の ISN レコードからフィールドの内容を読み込むことができます。 フィールドの内容は、レコードバッファに読み込まれます。 S4 コマンドを使用すると、ISN 結果リストの最初の ISN がホールド状態となります。

Top of page

ACB インターフェイスダイレクトコール:S1、S2、S4 の各コマンド

このセクションでは、S1、S2、S4 の各コマンドの 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 バイナリ F * A
フォーマットバッファ長 25~26 バイナリ F U
レコードバッファ長 27~28 バイナリ F U
サーチバッファ長 29‐30 バイナリ F U
バリューバッファ長 31‐32 バイナリ F U
ISN バッファ長 33~34 バイナリ F U
コマンドオプション 1 35 英数字 F U
コマンドオプション 2 36 英数字 F U
アディション 1 37~44 英数字 F U
アディション 2 45~48 バイナリ/バイナリ -- A
アディション 3 49~56 英数字 F A
アディション 4 57~64 英数字 F A
アディション 5 65~72 英数字 F U
コマンドタイム 73~76 バイナリ -- A
ユーザーエリア 77~80 -- -- U

バッファエリア

バッファ Adabas コール前 Adabas コール後
フォーマット F U
レコード -- A
サーチ F U
バリュー F U
ISN -- A

上記の意味は次に示すとおりです。

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
* オプションのタイムアウト値、秒単位
-- 未使用

コントロールブロックフィールドの説明

ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。

コマンドコード(ACBCMD)

S1、S2、S4

コマンド ID(ACBCID)

この値は、Adabas ワークに格納された ISN リストが完了したか、オーバーフローしたかを識別します。また、READ FIRST RECORD オプションが有効な場合、後続のコマンドに対してフォーマットバッファを識別するために使用します(「フォーマットバッファ」参照)。

SAVE ISN LIST オプションを使用する場合、またはオーバーフローした ISN を格納する場合には、このフィールドに空白やゼロ以外の値を指定する必要があります。

このフィールドの第 1 バイトには 16 進数 'FF' にセットしないでください。

詳細は「ISN リスト処理」を参照してください。

ファイル番号(ACBFNR)

ISN を選択するファイルの番号。

カップリングされたファイルを使用する問い合わせを行う場合は、このフィールドに指定したファイルがプライマリファイルとみなされます。 物理カップリングファイルのファイル番号は 255 以下でなければなりません。

Adabas 拡張ファイルでも検索できます。

注意:
2 バイトファイル番号およびデータベース ID を使用する場合は、コントロールブロックの先頭バイトに X'30' を入力しなければなりません。

レスポンスコード(ACBRSP)

Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、アディション 2 フィールドの下位 2 バイトにサブコードを伴う場合があります。詳細は『Adabas メッセージおよびコード』を参照してください。

ISN(ACBISN)

Adabas はこのフィールドに、ISN 結果リストの先頭 ISN を返します。 ISN が 1 件もなかった場合、このフィールドにはゼロが設定されます。

ISN 下限(ACBISL)

このフィールドを最初の S1 または S4 コールで使用すると、ISN 結果リストの最小 ISN 値を指定できます。 したがって、リストには、このフィールドに指定した ISN よりも大きな ISN のみが含まれます。 このフィールドをゼロに設定すると、Adabas は該当するすべての ISN を返します。

注意:
S2 コールの場合は、このフィールドに指定した値は無効です。 ソートされている ISN リスト(S2 コマンド)の場合は、このフィールドにゼロを設定するか、正しい ISN を指定する必要があります。

また、Adabas ワークにセーブした ISN リストから ISN グループを取得するときにも使用します。

ISN 数(ACBISQ)

このフィールドは、Sx コマンドの実行にかかる最大秒数を定義するのに使用します。

Adabas は、最初の Sx コールの結果として、検索条件を満たすレコードの数をこのフィールドに返します。 セキュリティバイバリューを使用する場合、値 0(1 レコードを検出)または 1(複数のレコードを検出)とともにレスポンスコード 1 をこのフィールドに返します。 詳細は、『Adabas Security マニュアル』を参照してください。

また、のちに Sx コールで Adabas ワークから ISN を取得すると、返された ISN の数がこのフィールドに格納されます。 ISN 自体は ISN バッファに返されます。

フォーマットバッファ長(ACBFBL)

フォーマットバッファ長(バイト単位)。 ユーザープログラムに定義するフォーマットバッファエリアは、この指定長と同じか、それ以上でなければなりません。

レコードバッファ長(ACBRBL)

レコードバッファ長(バイト単位)。 ユーザープログラムに定義するレコードバッファエリアは、この指定長と同じか、それ以上でなければなりません。

サーチバッファ長(ACBSBL)

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

バリューバッファ長(ACBVBL)

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

ISN バッファ長(ACBIBL)

ISN バッファ長(バイト単位)。 この長さによって ISN バッファに配置される ISN の数が決定します。

このフィールドをゼロにすると、ISN は ISN バッファに追加されません。 L1 または L4 コマンドの GET NEXT オプションを指定して ISN 結果リストを読み込む場合、または条件に合ったレコード数を求めるためだけにコマンドを発行する場合、このフィールドはゼロにする必要があります。

ゼロ以外の値を指定する場合は、4 の倍数にする必要があります。 そうでないと、Adabas は長さを次に小さい 4 の倍数に調整します。

コマンドオプション 1(ACBCOP1)
オプション 説明
H(ISN リストの格納) Sx コマンドを実行して得られた全 ISN リストを、指定したコマンド ID で Adabas ワークに格納します。 正しいコマンド ID を指定する必要があります。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。
R(リターン) S4 コマンドを使用している場合は、読み込んでホールドするレコードが使用不可であれば、レスポンスコード 145 を返します。
コマンドオプション 2(ACBCOP2)
オプション 説明
D(降順) S2 コマンドを使用している場合は、ディスクリプタ値を降順でソートします。

S2 コマンドでコマンドオプション 2 を指定しないと、ディスクリプタ値は昇順でソートされます。

コマンドオプション 1/2:CID 解放オプション(ACBCOP1 および ACBCOP2)

コマンドオプション 1 かコマンドオプション 2 フィールドのどちらかに、I オプションを指定できます。

オプション 説明
I コマンド実行の最初に、コマンド ID フィールドで指定されているコマンド ID(CID)値を解放します。 コマンド ID が解放されるのは ISN リストテーブル内だけなので、 同じコマンド ID が ISN 結果リストを識別するのに再度使用されます。
アディション 1:S2 コマンド、ソート制御用ディスクリプタ(ACBADD1)

S2 コマンドを使用している場合は、ソート順を制御するディスクリプタ(複数可)を指定する必要があります。ソート引数の指定がなければレスポンスコード 28 が返されます。

ディスクリプタは 3 つまで指定できます。サブディスクリプタおよびスーパーディスクリプタも指定できます。 フォネティックディスクリプタ、またはピリオディックグループ内にあるディスクリプタは指定できません。 マルチプルバリューフィールドは使用できます。この場合、ISN レコード内の最低値に基づいてソートされます。

このフィールド内で使用しない桁は、空白にしておかなければなりません。 例

XXYYbbbb

上記の意味は次に示すとおりです。

XX 主ソートディスクリプタ
YY 副ソートディスクリプタ
bbbb 空白

ソートできる ISN の数は、DBA が設定した SORT ワークエリアのサイズ(ADARUN LS パラメータ)に依存します。 ソートエリアが小さすぎる場合、ソートは行われず、レスポンスコード 1 が返され、ISN は昇順で返されます。

アディション 2(圧縮および非圧縮レコード長(ACBADD2))

コマンドが正常に処理されると、次の情報がこのフィールドに返されます。

Sx コマンドによってゼロ以外のレスポンスコードが返された場合、下位 2 バイトにレスポンスコードの正確な意味を定義したサブコードが含まれていることがあります。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。

アディション 3:パスワード(ACBADD3)

このフィールドは、Adabas Security または ADAESI パスワードを指定するため使用します。 データベース、ファイル、またはフィールドがセキュリティ保護されている場合は、有効なセキュリティパスワードまたは ADAESI パスワードをユーザーは指定する必要があります。 パスワードを保護するために、コマンド処理時にアディション 3 フィールドに空白がセットされます。

アディション 4:サイファコードおよびバージョン/ニュークリアス ID(ACBADD4)

このフィールドは、サイファコードを指定するために使用します。 ファイルを暗号化する場合は、有効なサイファコードを指定する必要があります。 ファイルを暗号化しない場合は、このフィールドに空白をセットする必要があります。

Adabas はコマンド処理時にサイファコードを空白に設定し、このフィールドの右端(下位)3 バイトにバージョンコードおよびデータベース ID を返します。 詳細については「コントロールブロックフィールド」を参照してください。

アディション 5:フォーマット ID、グローバルフォーマット ID(ACBADD5)

このコマンド用の内部フォーマットバッファを識別する別のフォーマット ID を指定するか、グローバルフォーマット ID を指定します。

アディション 5 フィールドの上位ビットにゼロ(0)が設定されている場合、コマンド ID フィールドに指定された値がフォーマット ID として使用されます。

このビットに 1 がセットされていると、アディション 5 フィールドの 5 バイト目から 8 バイト目までがフォーマット ID として使用されます。

さらに、アディション 5 フィールドの第 1 バイトの最上位(左端)2 ビットに、1(B'11')がセットされると、アディション 5 フィールドの全 8 バイトが、グローバルフォーマット ID として使用されます(つまり、複数ユーザーがこのフォーマット ID を同時に使用できます)。

詳細は、「コマンド ID、フォーマット ID、グローバルフォーマット ID」を参照してください。

ACB の例

ここで記述するすべての例で使用されている Adabas ファイルの定義については、「例で使用されているファイル定義」を参照してください。

例 1

ディスクリプタ AA で、A から J の値を持つファイル 1 内のレコードを選択します。

コントロールブロック

コマンドコード S1  
コマンド ID bbbb(空白) ISN は Adabas ワークに格納されません
ファイル番号 1  
ISN 下限 0 条件に合ったレコードの ISN をすべて返します
フォーマットバッファ長 1 またはそれ以上
サーチバッファ長 12 またはそれ以上
バリューバッファ長 2 またはそれ以上
ISN バッファ長 200 ISN が 50 個を超えないものと想定します。
コマンドオプション 1 b(空白) SAVE ISN LIST オプションは使用しません
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません。

バッファエリア

フォーマットバッファ . 読み込みは実行されません
サーチバッファ AA,1,S,AA,1.  
バリューバッファ C'AJ'  

例 2

READ オプション付き FIND。 ファイル 1 のレコードのうち、フィールド AA が ABCDEFGH であるレコードの ISN を選択します。 また、レコードのフィールド AC の値をデータストレージから読み込みます。

コントロールブロック

コマンドコード S1  
コマンド ID bbbb(空白) ISN は Adabas ワークに格納されません
ファイル番号 1  
ISN 下限 0 条件に合ったレコードの ISN をすべて返します
フォーマットバッファ長 3 またはそれ以上
レコードバッファ長 20 またはそれ以上
サーチバッファ長 3 またはそれ以上
バリューバッファ長 8 またはそれ以上
ISN バッファ長 4 ISN の個数が 1 を超えないものと想定します。
コマンドオプション 1 b(空白) SAVE ISN LIST オプションは使用しません
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ AC. フィールド AC の値を返します。
サーチバッファ AA.  
バリューバッファ C'ABCDEFGH'
X'C1C2C3C4C5C6C7C8'

例 3

ISN バッファオーバーフローのある FIND。 ファイル 1 のレコードのうち、フィールド AA の値が A から D の範囲にあるレコードを選択します。 ISN バッファオーバーフローを取り扱います。

コントロールブロック

コマンドコード S1  
コマンド ID ABCD 空白でないコマンド ID が必要です。
ファイル番号 1  
ISN 下限 0 条件に合ったレコードの ISN をすべて返します
フォーマットバッファ長 1 またはそれ以上
レコードバッファ長 0 またはそれ以上
サーチバッファ長 12 またはそれ以上
バリューバッファ長 2 またはそれ以上
ISN バッファ長 100 各コールにつき 25 件までの ISN を返します。
コマンドオプション 1 b(空白) SAVE ISN LIST オプションは使用しません
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません

バッファエリア

フォーマットバッファ . 読み込みは実行されません
サーチバッファ AA,1,S,AA,1.  
バリューバッファ C'AD'
X'C1C4'
 

Adabas は、初めの S1 コールの結果として ISN バッファに最大 25 個の ISN を返します。 25 個以上になると残りの ISN はコマンド ID ABCD の下で Adabas ワークに格納されます。 このオーバーフローした ISN は、同じコマンド ID を使用して S1 コールを繰り返せば読み込めます。

例 4

SAVE ISN LIST オプション付き FIND。 ファイル 2 のレコードのうち、フィールド XB の値が +80 であるレコードをすべて選択します。 ISN 結果リスト全体を Adabas ワークに格納します。

コントロールブロック

コマンドコード S1  
コマンド ID BCDE SAVE ISN LIST オプションを使用する場合は、空白でないコマンド ID が必要です。
ファイル番号 2  
ISN 下限 0 条件に合った ISN をすべて選択します
フォーマットバッファ長 1 またはそれ以上
レコードバッファ長 0 またはそれ以上
サーチバッファ長 3 またはそれ以上
バリューバッファ長 2 またはそれ以上
ISN バッファ長 200 各コールにつき最大 50 個の ISN が返されます。
コマンドオプション 1 H SAVE ISN LIST オプションを使用します
アディション 3 パスワード ファイルはセキュリティ保護されています

バッファエリア

フォーマットバッファ . 読み込みは実行されません
サーチバッファ XB.  
バリューバッファ X'080C'  

コマンド ID BCDE の S1 コマンドを繰り返すと、ユーザーは、このコールの結果格納される ISN リストからどの ISN グループも読み込めます。 Adabas は、ISN 下限フィールドに指定した ISN の次に大きい ISN からバッファに収まるだけの ISN を挿入します。

例 5

ソート付き FIND。 ファイル 1 のレコードのうち、フィールド AA の値が A から F の範囲にあるレコードをすべて選択します。 ISN 結果リストをフィールド AB の値の昇順で返します。

コントロールブロック

コマンドコード S2  
コマンド ID CDEF S2 コマンドを使用する場合は、空白でないコマンド ID が必要です。
ファイル番号 1  
ISN 下限 0 条件に合った ISN をすべて選択します
フォーマットバッファ長 1 またはそれ以上
レコードバッファ長 0 またはそれ以上
サーチバッファ長 12 またはそれ以上
バリューバッファ長 2 またはそれ以上
ISN バッファ長 100 各コールにつき最大 25 個の ISN が返されます。
コマンドオプション 1 b SAVE ISN LIST オプションは使用しません。
コマンドオプション 2 b 降順ソートオプションは使用しません。
アディション 1 ABbbbbbb 実行結果の ISN は、フィールド AB の値でソートされます。bbbbbb には空白が入ります。
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません

バッファエリア

フォーマットバッファ . 読み込みは実行されません
サーチバッファ AA,1,S,AA,1.  
バリューバッファ C'AF'
X'C1C6'
 

例 6

ホールド付き FIND。 ファイル 1 のレコードのうち、フィールド AA の値が 87654321 のレコードを選択します。 また、レコードを読み込んでホールド状態にします。 フィールド AB と AC の値を返します。

コントロールブロック

コマンドコード S4  
コマンド ID bbbb(空白) SAVE ISN LIST オプションを使用せず、オーバーフロー ISN も想定していないため、空白のコマンド ID を使用できます。
ファイル番号 1  
ISN 下限 0 条件に合った ISN をすべて選択します
フォーマットバッファ長 6 またはそれ以上
レコードバッファ長 22 またはそれ以上
サーチバッファ長 3 またはそれ以上
バリューバッファ長 8 またはそれ以上
ISN バッファ長 4 ただ 1 つの ISN が必要です。
コマンドオプション 1 b(空白) SAVE ISN LIST オプションは使用しません。
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ AB,AC. ISN リストの第 1 の ISN のレコードを読み込み、フィールド AB と AC の値を返します。
サーチバッファ AA.  
バリューバッファ C'87654321'
X'F8F7F6F5F4F3F2F1'

例 7

カップリングファイルを使用した FIND。 フィールド AB の値が 100 であるファイル 1 のレコードのうち、フィールド RB の値が ABCDE のファイル 2 のレコードとカップリングされたレコードを選択します。

コントロールブロック

コマンドコード S1  
コマンド ID EFGH ISN のオーバーフローが発生する可能性があるため、空白でないコマンド ID を使用します。
ファイル番号 1 ファイル 1 がプライマリファイルです。
ISN 下限 0 条件に合った ISN をすべて選択します
フォーマットバッファ長 1 またはそれ以上
レコードバッファ長 0 またはそれ以上
サーチバッファ長 14 またはそれ以上
バリューバッファ長 12 またはそれ以上
ISN バッファ長 100 各コールにつき最大 25 個の ISN を返します。
コマンドオプション 1 b SAVE ISN LIST オプションは使用しません。
アディション 3 パスワード ファイル 2 はセキュリティ保護されています。

バッファエリア

フォーマットバッファ . 読み込みは実行されません
サーチバッファ /1/AB,D,/2/RB.  
バリューバッファ X'100CC1C2C3C4C54040404040'

ファイル 1 がプライマリファイルとして指定されているため、ファイル 1 の ISN が返されます。 ファイル 2 の ISN も必要な場合は、ファイル番号フィールドをファイル番号 2 と指定し、FIND を繰り返します。 サーチバッファの検索条件の順番を変える必要はありません。

例 8

複合検索条件を使用した FIND。 サブディスクリプタ SA の値が "ABCD" で、フィールド XB の値が "80" より小さく、フィールド XE の値が "MMMMM" から "ZZZZZ"(ただし、"Sbbbb" から "TZZZZ" までは除く)であるファイル 2 のレコードを選択します。

コントロールブロック

コマンドコード S1  
コマンド ID GGGG SAVE ISN LIST オプションを使用するため、空白でないコマンド ID が必要です。
ファイル番号 2  
ISN 下限 0 条件に合った ISN をすべて選択します
フォーマットバッファ長 1 またはそれ以上
レコードバッファ長 0 またはそれ以上
サーチバッファ長 35 またはそれ以上
バリューバッファ長 27 またはそれ以上
ISN バッファ長 0 ISN バッファに ISN を返しません。
コマンドオプション 1 H SAVE ISN LIST オプションを使用します
アディション 3 パスワード ファイル 2 はセキュリティ保護されています。

バッファエリア

フォーマットバッファ . 読み込みは実行されません
サーチバッファ SA,D,XB,3,U,LT,D,XE,S,XE,N,XE,S,XE.  
バリューバッファ C'ABCD080MMMMMZZZZZSbbbbTZZZZ'  

Top of page

ACBX インターフェイスダイレクトコール:S1、S2、S4 の各コマンド

このセクションでは、S1、S2、S4 の各コマンドの 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 バイナリ F* A
コマンドオプション 1 49 英数字 F U
コマンドオプション 2 50 英数字 F U
  51~56 --- --- ---
アディション 1 57~64 英数字/バイナリ F U
アディション 2 65~68 バイナリ --- A
アディション 3 69~76 英数字/バイナリ F A
アディション 4 77~84 英数字 F A
アディション 5 85~92 英数字/バイナリ F U
  93~114 --- --- ---
エラーサブコード 115~116 バイナリ --- A
  117~144 --- --- ---
コマンドタイム 145~152 バイナリ --- A
ユーザーエリア 153~168 該当なし --- U
--- 169~193 操作不可 --- ---

ABD とバッファ

ABD とバッファ Adabas コール前 Adabas コール後
フォーマット F U
レコード --- A
サーチ F U
バリュー F U
ISN --- A

上記の意味は次に示すとおりです。

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
* オプションのタイムアウト値、秒単位
--- 未使用

コントロールブロックフィールドの説明

ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。

バージョンインジケータ(ACBXVER)

F2

コマンドコード(ACBXCMD)

S1、S2、S4

レスポンスコード(ACBXRSP)

Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。

コマンド ID(ACBXCID)

この値は、Adabas ワークに格納された ISN リストが完了したか、オーバーフローしたかを識別します。また、READ FIRST RECORD オプションが有効な場合、後続のコマンドに対してフォーマットバッファを識別するために使用します(「フォーマットバッファ」参照)。

SAVE ISN LIST オプションを使用する場合、またはオーバーフローした ISN を格納する場合には、このフィールドに空白やゼロ以外の値を指定する必要があります。

このフィールドの第 1 バイトには 16 進数 'FF' にセットしないでください。

詳細は「ISN リスト処理」を参照してください。

データベース ID(ACBXDBID)

このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。

このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。

このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。

ファイル番号(ACBXFNR)

このフィールドは、ISN を選択するファイルの番号を指定するのに使用します。

このフィールドは 4 バイトのバイナリフィールドですが、ファイル番号はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。

注意:
カップリングされた対のファイルで演算するコマンドの場合、このフィールドは、ISN またはデータが返されるプライマリファイルを指定します。 物理カップリングファイルのファイル番号は 255 以下でなければなりません。

Adabas 拡張ファイルでも検索できます。

ISN(ACBXISN)

Adabas はこのフィールドに、ISN 結果リストの先頭 ISN を返します。 ISN が 1 件もなかった場合、このフィールドにはゼロが設定されます。

ISN 下限(ACBXISL)

このフィールドを最初の S1 または S4 コールで使用すると、ISN 結果リストの最小 ISN 値を指定できます。 したがって、リストには、このフィールドに指定した ISN よりも大きな ISN のみが含まれます。 このフィールドをゼロに設定すると、Adabas は該当するすべての ISN を返します。

注意:
S2 コールの場合は、このフィールドに指定した値は無効です。 ソートされている ISN リスト(S2 コマンド)の場合は、このフィールドにゼロを設定するか、正しい ISN を指定する必要があります。

ACBXISL フィールドは、8 バイトの ACBXISLG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISLG フィールドの上位部分には、バイナリの 0 を設定します。

また、Adabas ワークにセーブした ISN リストから ISN グループを取得するときにも使用します。

ISN 数(ACBXISQ)

このフィールドは、Sx コマンドの実行にかかる最大秒数を定義するのに使用します。

ACBXISQ フィールドは、8 バイトの ACBXISQG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISQG フィールドの上位部分には、バイナリの 0 を設定します。

Adabas は、最初の Sx コールの結果として、検索条件を満たすレコードの数をこのフィールドに返します。 セキュリティバイバリューを使用する場合、値 0(1 レコードを検出)または 1(複数のレコードを検出)とともにレスポンスコード 1 をこのフィールドに返します。 詳細は、『Adabas Security マニュアル』を参照してください。

また、のちに Sx コールで Adabas ワークから ISN を取得すると、返された ISN の数がこのフィールドに格納されます。 ISN 自体は ISN バッファに返されます。

コマンドオプション 1(ACBXCOP1)
オプション 説明
H(ISN リストの格納) Sx コマンドを実行して得られた全 ISN リストを、指定したコマンド ID で Adabas ワークに格納します。 正しいコマンド ID を指定する必要があります。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。
R(リターン) S4 コマンドを使用している場合は、読み込んでホールドするレコードが使用不可であれば、レスポンスコード 145 を返します。
コマンドオプション 2(ACBXCOP2)
オプション 説明
D(降順) S2 コマンドを使用している場合は、ディスクリプタ値を降順でソートします。

S2 コマンドでコマンドオプション 2 を指定しないと、ディスクリプタ値は昇順でソートされます。

コマンドオプション 1/2:CID 解放オプション(ACBXCOP1 および ACBXCOP2)

コマンドオプション 1 かコマンドオプション 2 フィールドのどちらかに、"I" オプションを指定できます。

オプション 説明
I コマンド実行の最初に、コマンド ID フィールドで指定されているコマンド ID(CID)値を解放します。 コマンド ID が解放されるのは ISN リストテーブル内だけなので、 同じコマンド ID が ISN 結果リストを識別するのに再度使用されます。
アディション 1:S2 コマンド、ソート制御用ディスクリプタ(ACBXADD1)

S2 コマンドを使用している場合は、ソート順を制御するディスクリプタ(複数可)を指定する必要があります。ソート引数の指定がなければレスポンスコード 28 が返されます。

ディスクリプタは 3 つまで指定できます。サブディスクリプタおよびスーパーディスクリプタも指定できます。 フォネティックディスクリプタ、またはピリオディックグループ内にあるディスクリプタは指定できません。 マルチプルバリューフィールドは使用できます。この場合、ISN レコード内の最低値に基づいてソートされます。

このフィールド内で使用しない桁は、空白にしておかなければなりません。 例

XXYYbbbb

上記の意味は次に示すとおりです。

XX 主ソートディスクリプタ
YY 副ソートディスクリプタ
bbbb 空白

ソートできる ISN の数は、DBA が設定した SORT ワークエリアのサイズ(ADARUN LS パラメータ)に依存します。 ソートエリアが小さすぎる場合、ソートは行われず、レスポンスコード 1 が返され、ISN は昇順で返されます。

アディション 2:圧縮および非圧縮レコード長(ACBXADD2)

コマンドが正常に処理されると、次の情報がこのフィールドに返されます。

アディション 3:パスワード(ACBXADD3)

このフィールドは、Adabas Security または ADAESI パスワードを指定するため使用します。 データベース、ファイル、またはフィールドがセキュリティ保護されている場合は、有効なセキュリティパスワードまたは ADAESI パスワードをユーザーは指定する必要があります。 パスワードを保護するために、コマンド処理時にアディション 3 フィールドに空白がセットされます。

アディション 4:サイファコードおよびバージョン/ニュークリアス ID(ACBXADD4)

このフィールドは、サイファコードを指定するために使用します。 ファイルを暗号化する場合は、有効なサイファコードを指定する必要があります。 ファイルを暗号化しない場合は、このフィールドに空白をセットする必要があります。

Adabas はコマンド処理時にサイファコードを空白に設定し、このフィールドの右端(下位)3 バイトにバージョンコードおよびデータベース ID を返します。 詳細については「コントロールブロックフィールド」を参照してください。

アディション 5:フォーマット ID、グローバルフォーマット ID(ACBXADD5)

このコマンド用の内部フォーマットバッファを識別する別のフォーマット ID を指定するか、グローバルフォーマット ID を指定します。

アディション 5 フィールドの上位ビットにゼロ(0)が設定されている場合、コマンド ID フィールドに指定された値がフォーマット ID として使用されます。

このビットに 1 がセットされていると、アディション 5 フィールドの 5 バイト目から 8 バイト目までがフォーマット ID として使用されます。

さらに、アディション 5 フィールドの第 1 バイトの最上位(左端)2 ビットに、1(B'11')がセットされると、アディション 5 フィールドの全 8 バイトが、グローバルフォーマット ID として使用されます(つまり、複数ユーザーがこのフォーマット ID を同時に使用できます)。

詳細は、「コマンド ID、フォーマット ID、グローバルフォーマット ID」を参照してください。

エラーサブコード(ACBXERRC)

コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。

Top of page

バッファ

S1、S2、S4 の各コマンドでは、次のバッファを指定する必要があります。

フォーマットバッファ

ISN 結果リストの先頭の ISN を持つレコードをデータストレージから読み込む場合、値を取得するレコード内のフィールドをこのバッファに指定する必要があります。 フォーマットバッファの構文および例については、「バッファの定義」を参照してください。 S2 コマンドの ISN ソート順を制御するためのユーザー指定のフィールドをアディション 1 フィールドに指定する必要があります。

読み込みを行わない場合、このバッファの空白以外の第 1 文字はピリオド(.)である必要があります。

有効なコマンド ID を指定すると、デコードされたフォーマットバッファが保持され、同じコマンド ID を使用した後続のコマンドでもそのバッファを使用できるようになります。

レコードバッファ

フォーマットバッファに READ オプションを使用するフィールド定義がある場合、Adabas はこのバッファに要求されたフィールドの値を返します。

その値は、特にユーザーがフォーマットバッファに標準長と異なるフィールド長および/またはフォーマットを要求しない限り、フィールドの標準長とフォーマットに従って返されます。

サーチバッファとバリューバッファ

サーチバッファとバリューバッファは、検索条件を定義するのに使用します。 検索式(複数でも可)をサーチバッファに与え、検索式に相当する値をバリューバッファに指定します。

フォーマットバッファの構文および例については、「バッファの定義」を参照してください。

ISN バッファ

Adabas は、このバッファに ISN 結果リストを配置します。 各 ISN は 4 バイトの 2 進数で返されます。 ISN は、S2 コマンドを使用していなければ昇順で返されます。S2 コマンドを使用している場合は、ユーザー指定のソート順で返されます。

問い合わせにファイルカップリング条件が含まれている場合、ISN 結果リストにはプライマリファイルに属する ISN のみが含まれます。プライマリファイルとは、コントロールブロックのファイル番号フィールドで指定するファイルです。

ISN バッファ長フィールドが 4 未満の場合、このバッファには ISN が 1 つも返されません。 有効なコマンド ID を使用した場合、ISN バッファ長がゼロでなく、かつ ISN バッファが実行結果の全 ISN を入れるのに十分の長さではないと、Adabas はオーバーフローした ISN を Adabas ワークに格納します。 その後、同じコマンド ID の S1、S2、または S4 コールを使用してこの ISN を取り出すことができます。

詳細は「ISN リスト処理」を参照してください。

Top of page