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

S5 コマンド:カップリングリストの検索

S5 コマンドは、指定されたファイルとカップリングされた ISN のリストを返したり保存したりします。

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


機能および使用

S5 コマンドは、他のファイルのあるレコードとカップリングされているファイル内のレコードを求める場合に使用します。

ユーザーはファイル番号とファイル内の 1 つの ISN を指定し、さらにカップリングされた ISN を取得するファイル番号を指定します。 また、オプションとして、取得する ISN 以上の ISN 値も指定できます。

Adabas は、アソシエータ内のカップリングリストを使用して、指定レコードに対してカップリングされているレコードを探します。 データストレージにはアクセスしません。

Adabas は該当する ISN を ISN バッファに返します。

Top of page

ACB インターフェイスダイレクトコール:S5 コマンド

このセクションでは、S5 コマンドの 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 バイナリ F 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 を設定することをお勧めします。

コマンドコード(ACBCMD)

S5

コマンド ID(ACBCID)

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

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

ファイル番号(ACBFNR)

カップリングされた ISN を取得するファイルの番号。 このファイルは、プライマリファイルと呼ばれ、アディション 1 フィールドに指定したファイルとカップリングしていなければなりません。Adabas 拡張ファイルは指定できません。 物理カップリングファイルのファイル番号は 255 以下でなければなりません。

レスポンスコード(ACBRSP)

Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードには、アディション 2 フィールドの右半分にサブコードが返される場合があります。レスポンスコード、サブコードについては『Adabas メッセージおよびコード マニュアル』を参照してください。

ISN(ACBISN)

この ISN のレコードにカップリングされた ISN が返されます。 この ISN は、アディション 1 フィールドに指定したファイル内に存在している必要があります。 Adabas は、カップリングされた ISN 結果リストから、先頭の ISN をこのフィールドに返します。

ISN 下限(ACBISL)

このフィールドを最初の Sx コールで使用すると、ISN 結果リストが、このフィールドに指定した ISN より大きい ISN に制限されます。 このフィールドをゼロにすると、Adabas は条件に合った ISN をすべて返します。

また、このフィールドは、Adabas ワークからセーブされた ISN リストの ISN グループを取得するときにも使用します。

ISN 数(ACBISQ)

最初の S5 コールは、指定したファイル内の検索条件を満たすレコードの数を返します。

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

ISN バッファ長(ACBIBL)

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

このフィールドをゼロにすると、ISN は ISN バッファに追加されません。

後続の処理のために ISN リストをワークに保存するには、コマンドオプション 1 フィールドに H を指定し、有効なコマンド ID を使用します。 L1 コマンドまたは L4 コマンドの GET NEXT オプションで ISN 結果リストを読み込む場合、または条件に合ったレコード数を確認する目的でのみそのコマンドを発行する場合は、この ISN バッファ長フィールドをゼロにする必要があります。

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

コマンドオプション 1:SAVE ISN LIST オプション(ACBCOP1)
オプション 説明
H(ISN リストの格納) S5 コマンドを実行して得られた全 ISN リストを、指定したコマンド ID で Adabas ワークに格納します。 正しいコマンド ID を指定する必要があります。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。
コマンドオプション 1 または 2:コマンド ID オプションの解放(ACBCOP1 または ACBCOP2)

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

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

ISN フィールドに指定した ISN を持つファイルの番号。 ファイル番号は、このフィールドの先頭の 2 バイトに指定する必要があります。 番号はバイナリ形式で指定します。 このフィールドの残りのバイトは空白にする必要があります。 このフィールドは、一連の S5 コール間で変更しないでください。

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

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

ACB の例

ISN 5 を持つファイル 1 内のレコードとカップリングされているファイル 2 のレコードを選択します。 SAVE ISN LIST オプションを使用します。

コントロールブロック

コマンドコード S5  
コマンド ID S501 SAVE ISN LIST オプションを使用するため、空白でないコマンド ID が必要です。
ファイル番号 2 ファイル 2 のレコードを選択します。
ISN 5 ISN5 のレコードとカップリングしているレコードを選択します。
ISN 下限 0 条件に合った ISN をすべて選択します
ISN バッファ長 0 ISN バッファには ISN は返されません
コマンドオプション 1 H SAVE ISN LIST オプションを使用します。
アディション 1 X'0001404040404040' 選択されるレコードとカップリングしているレコードはファイル 1 にあります。
アディション 3 パスワード ファイルはセキュリティ保護されています

Top of page

ACBX インターフェイスダイレクトコール:S5 コマンド

このセクションでは、S5 コマンドの 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 バイナリ F 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 とバッファ

ABD とバッファ Adabas コール前 Adabas コール後
ISN --- A

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
--- 未使用

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

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

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

F2

コマンドコード(ACBXCMD)

S5

レスポンスコード(ACBXRSP)

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

コマンド ID(ACBXCID)

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

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

データベース ID(ACBXDBID)

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

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

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

ファイル番号(ACBXFNR)

このフィールドは、カップリングされた ISN を選択するファイルの番号を指定するのに使用します。 このファイルは、プライマリファイルと呼ばれ、アディション 1 フィールドに指定したファイルとカップリングしていなければなりません。Adabas 拡張ファイルは指定できません。 物理カップリングファイルのファイル番号は 255 以下でなければなりません。

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

ISN(ACBXISN)

この ISN のレコードにカップリングされた ISN が返されます。 この ISN は、アディション 1 フィールドに指定したファイル内に存在している必要があります。 Adabas は、カップリングされた ISN 結果リストから、先頭の ISN をこのフィールドに返します。

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

ISN 下限(ACBXISL)

このフィールドを最初の Sx コールで使用すると、ISN 結果リストが、このフィールドに指定した ISN より大きい ISN に制限されます。 このフィールドをゼロにすると、Adabas は条件に合った ISN をすべて返します。

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

また、このフィールドは、Adabas ワークからセーブされた ISN リストの ISN グループを取得するときにも使用します。

ISN 数(ACBXISQ)

最初の S5 コールは、指定したファイル内の検索条件を満たすレコードの数を返します。

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

コマンドオプション 1:SAVE ISN LIST オプション(ACBXCOP1)
オプション 説明
H(ISN リストの格納) S5 コマンドを実行して得られた全 ISN リストを、指定したコマンド ID で Adabas ワークに格納します。 正しいコマンド ID を指定する必要があります。 コマンド ID を指定しないと、ISN リストは Adabas ワークに格納されず、ISN バッファに格納されなかった ISN はすべて失われます。
コマンドオプション 1 または 2:コマンド ID 解放オプション(ACBXCOP1 または ACBXCOP2)

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

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

ISN フィールドに指定した ISN を持つファイルの番号。 ファイル番号は、このフィールドの先頭の 2 バイトに指定する必要があります。 番号はバイナリ形式で指定します。 このフィールドの残りのバイトは空白にする必要があります。 このフィールドは、一連の S5 コール間で変更しないでください。

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

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

エラーサブコード(ACBXERRC)

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

Top of page

バッファ

S5 コマンドには、次のバッファが適用されます。

フォーマットバッファ

これが ACB インターフェイスダイレクトコールであり、フォーマットバッファが指定されていない場合は、処理エラーが発生します。ACB インターフェイスダイレクトコールはセットシーケンスにバッファが指定されていることを要求します。 ACBX インターフェイスダイレクトコールの場合は、フォーマットバッファを指定する必要はありません。

レコードバッファ

ACB インターフェイスダイレクトコールの場合は、レコードバッファを指定しないと、処理エラーが発生します。ACB インターフェイスダイレクトコールの処理では、セットシーケンスにバッファが指定されていることが前提になっています。 ACBX インターフェイスダイレクトコールの場合は、レコードバッファを指定する必要はありません。

サーチバッファ

ACB インターフェイスダイレクトコールの場合は、サーチバッファを指定しないと、処理エラーが発生します。ACB インターフェイスダイレクトコールの処理では、セットシーケンスにバッファが指定されていることが前提になっています。 ACBX インターフェイスダイレクトコールの場合は、サーチバッファを指定する必要はありません。

バリューバッファ

ACB インターフェイスダイレクトコールの場合は、バリューバッファを指定しないと、処理エラーが発生します。ACB インターフェイスダイレクトコールの処理では、セットシーケンスにバッファが指定されていることが前提になっています。 ACBX インターフェイスダイレクトコールの場合は、バリューバッファを指定する必要はありません。

ISN バッファ

Adabas は、ISN バッファに ISN 結果リストを置きます。 各 ISN は 4 バイトの 2 進数で返されます。 ISN リストの最初の ISN は、コントロールブロックの ISN フィールドにも返されます。

ISN は 昇順で返されます。

ISN バッファ長がゼロでも、実行結果の全 ISN を入れるだけの十分な大きさでもなく、かつ有効なコマンド ID を使用した場合、Adabas はオーバーフローした ISN を Adabas ワークに格納します。 これらの ISN は、同じコマンド ID を使用した S5 コールで取り出すことができます。 詳細は「ISN リスト処理」を参照してください。

Top of page