サーチバッファとバリューバッファは、次の定義を行うときに、対で使用します。
FIND コマンド(S1、S2、S4)でレコードの集合を選択するための検索条件
読み込みコマンド(L3/6、L9)が論理的な順次読み込みを行う範囲
バリューバッファを指定した場合、サーチバッファも指定されているものと見なされます。 指定しないと、バリューバッファのペアとなるダミーのサーチバッファが作成されます。 それぞれのタイプの ABD またはバッファ間の関係については、「バッファタイプ間の関係」を参照してください。
単一の Adabas ダイレクトコールに指定可能なサーチバッファとバリューバッファのペアの数は 1 つだけです。
ユーザーは、サーチバッファに検索式を、バリューバッファには検索式に対応する値を指定します。
サーチバッファに指定した各ディスクリプタの値をバリューバッファに指定します。
検索式がコマンド ID であれば、バリューバッファに対応するエントリを作成しません。
指定する各値は、サーチバッファに指定した各検索式と同じ順序でなければなりません。 指定する全値は、サーチバッファに指定した検索式に対応して同じ順序でなければならず、(サーチバッファに長さとフォーマットを指定しないとき)サーチバッファ内の関連するディスクリプタの標準長と標準フォーマットに一致していなければなりません。
間に空白を入れたり、他のコンマなどの文字をバリューバッファ内の値の間に挿入することはできません。 バリューバッファの末尾にピリオドを指定する必要はありません。
NC(SQL 空値 "NOT COUNTED")オプション付きで定義されたフィールドを検索するときは、サーチバッファのフィールド定義に空値シグニフィカンス(S)インジケータを付け、対応するバリューバッファ引数値に 2 バイトのバイナリ空値インジケータを示さなければなりません。 バリューバッファの空値インジケータの説明や例については、「S(シグニフィカンス)と空値インジケータ」を参照してください。
バイナリ値は符号なしの数として扱います。 固定小数点、アンパックおよびパックの値は符号付数値として扱います。 指定できる有効な符号については、このセクションで説明します。
固定値の場合、符号はビット 0(高位のビット)にあります。
0=正
1=負(2 の補数)
以下に固定値の符号の例を 2 つ示します。16 進数と 10 進数で表記しています。
00000005 = +5 FFFFFFFB = -5
アンパック値の場合、符号は下位バイトの高位 4 ビットにあります。
C または A または F または E = 正(CAFE)
B または D=負(BD)
以下にアンパック値の符号の例を 2 つ示します。16 進数と 10 進数で表記しています。
F1F2F3 = +123 F1F2D3 = -123
パック値の場合、符号は下位バイトの下位 4 ビットにあります。
A または C または E または F=正
B または D=負
パックフィールドから生成したスーパーディスクリプタに対して検索値を指定する場合、正の符号には F を、負の符号には D を指定する必要があります。
以下にパック値の符号の例を 2 つ示します。16 進数と 10 進数で表記しています。
X'123F' = +123 X'123C' = +123 X'123D' = -123