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

L1/L4 コマンド:読み込み/読み込みおよびレコードのホールド

L1 コマンドと L4 コマンドでは、データストレージからレコードを 1 つ読み込みます。

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


機能および使用

読み込むレコードのファイル番号と ISN を指定します。 また、フォーマットバッファでどのフィールドを読み込むかを示します。 レコードバッファには、要求されたフィールド値が返されます。

L4 コマンドは L1 コマンドと同じ機能を持ちます。ただし、そのレコードをホールド状態にします。 ホールドするレコードが現在他のユーザーによってホールド状態になっている場合は、レコードが使用可能になるか、またはトランザクションがタイムアウトになるまで待機状態になります。 コマンドオプション 1 フィールドを "R" にして L4 コマンドを発行した場合、読み込んでホールドするレコードが使用できないときは、レスポンスコード 145 が返されます。

FIRST UNUSED ISN(F)オプションをコマンドオプション 2 フィールドに指定すると、その ISN フィールドの指定されたファイルについて、次に高い未使用 ISN が返されます。 F オプションは、拡張ファイルには使用できません。

マルチフェッチ/プリフェッチオプションを使用すると単一レコードのフェッチに必要な時間が省かれ、パフォーマンスを向上できます。 マルチフェッチ/プリフェッチを使用可能にするには、コマンドオプション 1 フィールドに "M"、"O"(マルチフェッチ)、または "P"(プリフェッチ)を指定します。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。

GET NEXT(N)オプションをコマンドオプション 2 フィールドに指定すると、ISN リスト(Sx コマンドですでに作成済み)内の ISN で識別されるレコードが読み込まれます。このとき、各 L1/L4 コールで読み込むレコードの ISN を指定する必要はありません。 Adabas によってリストから ISN が選択され、その ISN で識別されるレコードが読み込まれます。

READ BY ISN SEQUENCE(I)オプションをコマンドオプション 2 フィールドに指定すると、ISN フィールドに指定した ISN で識別されるレコードが読み込まれます。 指定した ISN がファイルに存在しない場合は、次に大きな ISN のレコードが読み込まれ、その ISN が ISN フィールドに返されます。

COMPRESSED オプション(フォーマットバッファに "C." を指定することで設定)を使用すると、読み込んだレコードを Adabas 内部に格納するときと同じ圧縮形式で返すように要求できます。

Top of page

ACB インターフェイスダイレクトコール:L1 コマンドおよび L4 コマンド

このセクションでは、L1 コマンドおよび L4 コマンドの 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 U *
ISN 下限 17~20 バイナリ F U
  21~24 -- -- --
フォーマットバッファ長 25~26 バイナリ F U
レコードバッファ長 27~28 バイナリ F U
  29~32 -- -- --
ISN バッファ長 ** 33~34 バイナリ F U
コマンドオプション 1 35 英数字 F U
コマンドオプション 2 36 英数字 F U
  37~44 -- -- --
アディション 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
ISN ** -- A

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
* 特殊なオプションの除外
** ISN バッファおよび長さは、マルチフェッチオプションまたはプリフェッチオプションを指定した場合にのみ必須です。
-- 未使用

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

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

コマンドコード(ACBCMD)

L1 または L4

コマンド ID(ACBCID)

一連の L1 または L4 コールを使用して複数のレコードを読み、各コールでフォーマットバッファに同一フィールドを指定する場合、このフィールドは空白およびゼロを除いた値にします。 これにより、L1 または L4 の各コールに要する処理時間を短縮できます。

GET NEXT オプションを使用する場合は、使用する ISN リストのコマンド ID をこのフィールドに指定する必要があります。 また、GET NEXT オプション使用時、L1 または L4 の各コール間でフォーマットバッファを変更しないでください。

1 レコードだけを読み込む場合やフォーマットバッファを L1 または L4 コール間で変更する場合は、このフィールドを空白にしておきます。

コマンド ID 値が X'FFFFFFFF' の場合、自動的にコマンド ID が生成されます。 この場合、Adabas ニュークリアスは X'00000001' から始まるコマンド ID 値を生成し、L1 または L4 コールごとに値を 1 ずつ増加します。 ユーザー定義コマンド ID を指定する場合、ユーザーは各コマンド ID を固有のものにする必要があります。

別のフォーマット ID およびグローバルフォーマット ID の使用については、アディション 5 フィールドを参照してください。

ファイル番号(ACBFNR)

読み込むファイルの番号を 2 進数で指定します。 物理ダイレクトコールの場合は、次のようファイル番号を指定します。

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

レスポンスコード(ACBRSP)

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

レスポンスコード 3 は、エンドオブファイル条件を示します(GET NEXT オプションを使用の場合のみ)。

ISN(ACBISN)

読み込むレコードの ISN を指定します。

GET NEXT(N)オプションを指定すると、Adabas はコマンド ID で識別される ISN リストから ISN を選択し、この ISN のレコードを読み込んで、次のレコードの ISN をこのフィールドに返します。このため、指定した ISN 値は無視されます。

ISN SEQUENCE(I)オプションを指定するときは、このフィールドに ISN 値も指定する必要があります。 L1 または L4 コマンドは、指定した ISN のデータレコードをレコードバッファに返します。

F オプションを指定すると、L1 コマンドまたは L4 コマンドはファイルコントロールブロック(FCB)に記録されている最大の ISN をこのフィールドに返します。

レコードが読み込まれると、指定されたオプションに関係なく、そのレコードの ISN がこのフィールドに返されます。 オプション F を指定すると、次の番号の未使用の ISN が返されます。

ISN 下限:マルチフェッチレコード数(ACBISL)

コマンドオプション 1 フィールドに "M" または "O"(マルチフェッチオプション)を指定した場合、このフィールドのゼロ以外の値によって、マルチフェッチ対象の最大レコード数が特定されます。 このフィールドの値がゼロの場合は、マルチフェッチ対象のレコード数はレコードバッファと ISN バッファの長さによって制限されます。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。

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

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

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

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

ISN バッファ長:コマンドレベルのマルチフェッチ/プリフェッチオプションのみ(ACBIBL)

ISN バッファ長(バイト単位)。 ユーザープログラムに定義する ISN バッファは、少なくともこの長さと同じ大きさである必要があります。

コマンドオプション 1(ACBCOP1)
オプション 説明
F(最初の未使用 ISN) 指定したファイルについて、次の番号の未使用の ISN を ISN フィールドに返します。 "次の未使用 ISN" は、ファイルコントロールブロック(FCB)を参照することによって特定されます。 Adabas 拡張ファイルを読み込むときは F オプションを使用しないでください。
M(マルチフェッチ) このコマンドのマルチフェッチ処理が実行されます。
O(R オプションを指定してマルチフェッチ処理) このコマンドのマルチフェッチ処理と R オプションの処理(下記参照)が実行されます。
P(プリフェッチ) このコマンドのプリフェッチ処理が実行されます。
R(リターン) L4 コマンドによる読み込みおよびホールド対象のレコードが使用可能でない場合に、レスポンスコード 145 を返します。

M、O、P のいずれかのオプションを指定すると、コマンドにプリフェッチオプションまたはマルチフェッチオプションが使用されることになります。 ISN 順(I)オプションまたは GET NEXT(N)オプションのいずれかをコマンドオプション 2 フィールドに指定した場合、そのオプションがアクティブになります。 マルチフェッチ/プリフェッチオプションを使用すると単一レコードのフェッチに必要な時間が省かれ、パフォーマンスを向上できます。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。

コマンドオプション 2(ACBCOP2)
オプション 説明
F(最初の未使用 ISN) 指定したファイルについて、次の番号の未使用の ISN を ISN フィールドに返します。 "次の未使用 ISN" は、ファイルコントロールブロック(FCB)を参照することによって特定されます。 Adabas 拡張ファイルを読み込むときは F オプションを使用しないでください。
I(ISN 順に読み込み) ファイルに ISN がある場合、ISN フィールドに指定した ISN で識別されるレコードを読み込みます。 ファイルに ISN がない場合は、次の番号の ISN のレコードが読み込まれ、そのレコードの ISN が ISN フィールドに返されます。 ファイルに指定の ISN も、次の番号の ISN もない場合は、レコードは読み込まれず、レスポンスコード 3 が返されます。
N(GET NEXT) ISN リストの ISN で識別されるレコードが読み込まれます。ユーザーは、L1 または L4 コールに読み込み対象レコードの ISN を指定する必要はありません。 Adabas によってリストから ISN が選択され、その ISN で識別されるレコードが読み込まれます。 使用する ISN リストは、コマンド ID フィールドで識別される必要があります。また、Sx コマンドによってあらかじめ作成されたものである必要もあります。 リスト中の全 ISN を選択し終わると、レスポンスコード 3 が返されます。 詳細は「ISN リスト処理」を参照してください。
アディション 2(圧縮および非圧縮レコード長(ACBADD2))

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

注意:
プリフェッチ機能の使用時、この長さ情報は返されません。

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

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

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

アディション 4:サイファコード(ACBADD4)

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

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

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

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

アディション 5 フィールドで 1 バイト目の上位(左端)ビットに 1 が設定されていない場合、コマンド ID フィールドに指定された値がフォーマット ID として使用されます。

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

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

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

ACB の例

ここに示した各例で使用している Adabas ファイルの定義については、「例で使用されているファイル定義」セクションを参照してください。

例 1:単一レコードを読み込む

ファイル 1 の ISN 4 を読み込みます。 フィールド AA と AB の値が返されます。

コントロールブロック

コマンドコード L1  
コマンド ID bbbb(空白) 1 レコードのみを読み込みます
ファイル番号 1  
ISN 4  
フォーマットバッファ長 6 またはそれ以上
レコードバッファ長 10 またはそれ以上
コマンドオプション 2 b GET NEXT または READ ISN SEQUENCE オプションは使用しません
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ AA,AB.

例 2:一組のレコードを読み込む

FIND コマンドですでに ISN がわかっている一組のレコードをファイル 2 から読み込みます。 フィールド RA および XB の値を返します。ただし、フィールド XB の値は、長さ 3、フォーマット U で返すものとします。

コントロールブロック

コマンドコード L1  
コマンド ID ABCD 各レコードに対し同じフィールドを連続して読み込む場合は、CID を空白以外にすることをお勧めします。
ファイル番号 2  
ISN n ISN は、FIND コマンドで作成した ISN リストから取得します。
フォーマットバッファ長 10 またはそれ以上
レコードバッファ長 11 またはそれ以上
コマンドオプション 2 b GET NEXT または READ ISN SEQUENCE オプションは使用しません
アディション 3 パスワード ファイルはセキュリティ保護されています
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ RA,XB,3,U

* n は、FIND コマンドで作成した ISN リストにある ISN を示します。 ISN リストの各 ISN に対して L1 コールを繰り返します。

例 3:GET NEXT オプションを使用して一組のレコードを読み込む

例 2 と同じ要件を GET NEXT オプションでも満たすことができます。

コントロールブロック

コマンドコード L1  
コマンド ID ABCD 使用する ISN リストの CID
ファイル番号 2  
ISN 0 ISN リストの第 1 ISN から始まって全 ISN リストが選択されます。
フォーマットバッファ長 10 またはそれ以上
レコードバッファ長 11 またはそれ以上
コマンドオプション 2 N 使用する GET NEXT オプション
アディション 3 パスワード ファイルはセキュリティ保護されています
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ RA,XB,3,U

ISN リストの各 ISN に対して L1 コールを繰り返します。 L1 コール間でコントロールブロックの内容を変更する必要はありません。 ISN リスト内の ISN をすべて選択すると、レスポンスコード 3 が返されます。

例 4:読み込んでホールドする

ファイル 2 の ISN 5 を読み込み、更新のためホールドします。 フィールド XC および XD の値を返します。

コントロールブロック

コマンドコード L4 読み込んでホールドします。
コマンド ID bbbb(空白) 1 レコードのみを読み込みます。
ファイル番号 2  
ISN 5  
フォーマットバッファ長 6 またはそれ以上
レコードバッファ長 14 またはそれ以上
コマンドオプション 1 b レスポンスコード 145 オプション使用しません
コマンドオプション 2 b GET NEXT または READ ISN SEQUENCE オプションは使用しません
アディション 3 パスワード ファイルはセキュリティ保護されています
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ XC,XD

例 5:READ ISN SEQUENCE オプションを使用して読み込む

ファイル 1 を READ ISN SEQUENCE オプションを使用して読み込みます。 フィールド AA、AB、および AC の値を返します。

コントロールブロック

コマンドコード L1  
コマンド ID BCDE 同じフィールドを返す一連のレコードを読み込む場合は、CID を空白以外にすることをお勧めします。
ファイル番号 1  
ISN 1 ISN 1 が存在しない場合、ファイル内の次に高い ISN のレコードを読み込み、その ISN をこのフィールドに返します。
フォーマットバッファ長 6 またはそれ以上
レコードバッファ長 30 またはそれ以上
コマンドオプション 2 I 呼び出された READ ISN SEQUENCE オプションを読み込みます。
アディション 3 bbbbbbbb(空白) ファイルはセキュリティ保護されていません
アディション 4 bbbbbbbb(空白) ファイルは暗号化されない

バッファエリア

フォーマットバッファ GA,AC.

Adabas は、コントロールブロックの ISN フィールドに、読み込んだレコードの ISN を返します。 ISN フィールドに 1 を加算し、L1 コマンドを繰り返すことによって、次に大きい ISN のレコードを読み込むことができます。

例 6:マルチプルバリューフィールドおよびピリオディックグループを読み込む

ファイル 1 の ISN 2 のレコードを読み込みます。 フィールド AA の値、マルチプルバリューフィールド MF の全値、およびピリオディックグループ GB の全オカレンスを返します。

方法 1:オカレンスが 6 個以上の場合

  1. L1 コールを発行して、MF の値の個数および GB の最大オカレンスカウントを取得します。

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

    コマンドコード L1  
    コマンド ID bbbb(空白) 1 レコードのみを読み込みます
    ファイル番号 1  
    ISN 2  
    フォーマットバッファ長 8 またはそれ以上
    レコードバッファ長 2 またはそれ以上
    コマンドオプション 2 b GET NEXT も READ ISN SEQUENCE オプションも使用しません。

    バッファエリア

    フォーマットバッファ MFC,GBC
  2. 上記の L1 コールの結果、MF の値が 4 つあり、GB のオカレンスが 6 つあるレコードが返されたものとして、次のフォーマットバッファを使用して L1 コールを繰り返します。

    AA,MF01-04,GB01-06

    どのコールでも、フォーマットバッファおよびレコードバッファの長さはエントリと値をすべて保持できるだけの十分な長さである必要があります。

    この手順で一連のレコードを読み込むとき、ステップ 1 では空白以外のコマンド ID を使用します。また、ステップ 2 ではフォーマットバッファの内容がステップ 2 を呼び出すたびに変わる可能性があるため、空白のコマンド ID を使用します。

方法 2:オカレンスが 6 つ未満の場合

値/オカレンスの数が少ない(6 未満)レコードが大部分を占める場合には、例 5 の方法よりも次の方が効率的です。

  1. MF および GB の個数以外に、MF と GB の値とオカレンスの予想数、およびフィールド AA を要求する L1 コールを発行します。

    MF の値の予想個数を 2、GB のオカレンスの予想個数を 3 とすると、ステップ 1 のフォーマットバッファは次のようになります。

    AA,MFC,GBC,MF01-02,GB01-03.*

    * 90 %のレコードで値/オカレンスをすべて取得できるような値が指定された場合、パフォーマンスが最大になります。

  2. 返された MF の個数が 2 を超えている場合、または GB の個数が 3 を超えている場合、前述のステップ 2 のようなフォーマットバッファを使用すると、その超過分の値やオカレンスを取得できます。 それ以外の場合、2 回目のコールは必要ありません。

Top of page

ACBX インターフェイスダイレクトコール:L1 コマンドおよび L4 コマンド

このセクションでは、L1 コマンドおよび L4 コマンドの 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 U *
  33~36 --- --- ---
ISN 下限 37~40 バイナリ F U
  41~48 --- --- ---
コマンドオプション 1 49 英数字 F U
コマンドオプション 2 50 英数字 F U
  51~64 --- --- ---
アディション 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
マルチフェッチ ** -- A

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
* 特殊なオプションの除外
** マルチフェッチオプションを指定した場合のみ、マルチフェッチバッファが必要です。
--- 未使用

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

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

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

F2

コマンドコード(ACBXCMD)

L1 または L4

レスポンスコード(ACBXRSP)

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

レスポンスコード 3 は、エンドオブファイル条件を示します(GET NEXT オプションを使用の場合のみ)。

コマンド ID(ACBXCID)

一連の L1 または L4 コールを使用して複数のレコードを読み、各コールでフォーマットバッファに同一フィールドを指定する場合、このフィールドは空白およびゼロを除いた値にします。 これにより、L1 または L4 の各コールに要する処理時間を短縮できます。

GET NEXT オプションを使用する場合は、使用する ISN リストのコマンド ID をこのフィールドに指定する必要があります。 また、GET NEXT オプション使用時、L1 または L4 の各コール間でフォーマットバッファを変更しないでください。

1 レコードだけを読み込む場合やフォーマットバッファを L1 または L4 コール間で変更する場合は、このフィールドを空白にしておきます。

コマンド ID 値が X'FFFFFFFF' の場合、自動的にコマンド ID が生成されます。 この場合、Adabas ニュークリアスは X'00000001' から始まるコマンド ID 値を生成し、L1 または L4 コールごとに値を 1 ずつ増加します。 ユーザー定義コマンド ID を指定する場合、ユーザーは各コマンド ID を固有のものにする必要があります。

別のフォーマット ID およびグローバルフォーマット ID の使用については、アディション 5 フィールドを参照してください。

データベース ID(ACBXDBID)

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

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

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

ファイル番号(ACBXFNR)

このフィールドを使用して、Adabas コールで送る必要のあるファイル数を指定します。

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

ISN(ACBXISN)

このフィールドは、読み込むレコードの ISN を指定するのに使用します。

GET NEXT(N)オプションを指定すると、Adabas はコマンド ID で識別される ISN リストから ISN を選択し、この ISN のレコードを読み込んで、次のレコードの ISN をこのフィールドに返します。このため、指定した ISN 値は無視されます。

ISN SEQUENCE(I)オプションを指定するときは、このフィールドに ISN 値も指定する必要があります。 L1 または L4 コマンドは、指定した ISN のデータレコードをレコードバッファに返します。

F オプションを指定すると、L1 コマンドまたは L4 コマンドはファイルコントロールブロック(FCB)に記録されている最大の ISN をこのフィールドに返します。

レコードが読み込まれると、指定されたオプションに関係なく、そのレコードの ISN がこのフィールドに返されます。 オプション F を指定すると、次の番号の未使用の ISN が返されます。

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

ISN 下限:マルチフェッチレコード数(ACBXISL)

コマンドオプション 1 フィールドに "M" または "O"(マルチフェッチオプション)を指定した場合、このフィールドのゼロ以外の値によって、マルチフェッチ対象の最大レコード数が特定されます。 このフィールドの値がゼロの場合は、マルチフェッチ対象のレコード数はレコードバッファと ISN バッファの長さによって制限されます。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。

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

コマンドオプション 1(ACBXCOP1)
オプション 説明
F(最初の未使用 ISN) 指定したファイルについて、次の番号の未使用の ISN を ISN フィールドに返します。 "次の未使用 ISN" は、ファイルコントロールブロック(FCB)を参照することによって特定されます。 Adabas 拡張ファイルを読み込むときは F オプションを使用しないでください。
M(マルチフェッチ) このコマンドのマルチフェッチ処理が実行されます。
O(R オプションを指定してマルチフェッチ処理) このコマンドのマルチフェッチ処理と R オプションの処理(下記参照)が実行されます。
R(リターン) L4 コマンドによる読み込みおよびホールド対象のレコードが使用可能でない場合に、レスポンスコード 145 を返します。

"M" または "O" オプションを指定すると、コマンドにマルチフェッチオプションが使用されることになります。 ISN 順(I)オプションまたは GET NEXT(N)オプションのいずれかをコマンドオプション 2 フィールドに指定した場合、そのオプションがアクティブになります。 マルチフェッチオプションを使用すると、単一レコードをフェッチする時間が必要なくなるため、パフォーマンスを向上させることができます。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。

コマンドオプション 2(ACBXCOP2)
オプション 説明
F(最初の未使用 ISN) 指定したファイルについて、次の番号の未使用の ISN を ISN フィールドに返します。 "次の未使用 ISN" は、ファイルコントロールブロック(FCB)を参照することによって特定されます。 Adabas 拡張ファイルを読み込むときは F オプションを使用しないでください。
I(ISN 順に読み込み) ファイルに ISN がある場合、ISN フィールドに指定した ISN で識別されるレコードを読み込みます。 ファイルに ISN がない場合は、次の番号の ISN のレコードが読み込まれ、そのレコードの ISN が ISN フィールドに返されます。 ファイルに指定の ISN も、次の番号の ISN もない場合は、レコードは読み込まれず、レスポンスコード 3 が返されます。
N(GET NEXT) ISN リストの ISN で識別されるレコードが読み込まれます。ユーザーは、L1 または L4 コールに読み込み対象レコードの ISN を指定する必要はありません。 Adabas によってリストから ISN が選択され、その ISN で識別されるレコードが読み込まれます。 使用する ISN リストは、コマンド ID フィールドで識別され、かつ Sx コマンドで以前に作成したものである必要があります。 リスト中の全 ISN を選択し終わると、レスポンスコード 3 が返されます。 詳細は「ISN リスト処理」を参照してください。
アディション 2:圧縮および非圧縮レコード長(ACBXADD2)

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

注意:
プリフェッチ機能の使用時、この長さ情報は返されません。

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

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

アディション 4:サイファコード(ACBXADD4)

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

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

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

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

アディション 5 フィールドで 1 バイト目の上位(左端)ビットに 1 が設定されていない場合、コマンド 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

バッファ

L1 コマンドおよび L4 コマンドには、次のバッファが適用されます。

フォーマットバッファ

このバッファに読み込むフィールドを限定します。 フォーマットバッファの構文および例については、「バッファの定義」を参照してください。

"C." がフォーマットバッファの先頭 2 桁にあると、レコードは非圧縮ではなく圧縮された形式で返されます。

レコードバッファ

Adabas は、バッファに要求されたフィールドの値をこのバッファに返します。 ユーザーがフォーマットバッファに長さやフォーマットを標準以外の値に指定していない限り、どの値もフィールドの標準のフォーマットと長さで返されます。

ISN バッファ

ISN バッファが使用されるのは、コマンドレベルのマルチフェッチオプションを要求した場合、および ACB インターフェイスを使用してダイレクトコールを行う場合に限られます。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。 マルチフェッチを使用した場合、L1 コマンドおよび L4 コマンドはディスクリプタのエレメントを最大 16 バイトの長さまで ISN バッファに返します(「BT/ET のマルチフェッチ処理」セクション参照)。

マルチフェッチバッファ

マルチフェッチバッファが使用されるのは、コマンドレベルのマルチフェッチオプションを要求した場合、および ACBX インターフェイスを使用してダイレクトコールを行う場合に限られます。 詳細は、「マルチフェッチ/プリフェッチ機能の使用」を参照してください。 マルチフェッチを使用した場合、L1 コマンドおよび L4 コマンドはディスクリプタのエレメントを最大 16 バイトの長さまでマルチフェッチバッファに返します(「BT/ET のマルチフェッチ処理」セクション参照)。

Top of page