Btrieve API Guide (v11)

Get Equal(5)

Get Equal オペレーション(B_GET_EQUAL)では、キー バッファーに指定されたキー値と等しいキー値を持つレコードを取得します。キーの重複が可能な場合は、同じキー値を持つグループの中で先頭のレコード(作成順)が取得されます。Get Key(+50)バイアスを使うと、ファイル内に値が存在するかどうかを検出することもできます。一般に、Get Key オペレーションの方が高速に処理されます。

パラメーター

 
オペレーション コード
ポジション ブロック
データ バッファー
データ バッファー長
キー バッファー
キー番号
送り値

 

戻り値
 

 
 

前提条件

手順

  1. オペレーション コードに 5 を設定します。オプションで、ロック バイアスも指定できます。
  2. ファイルのポジション ブロックを渡します。
  3. データ バッファー長に取得するレコードの長さ以上の値を設定します。
  4. キー バッファーに目的のキー値を指定します。キーが複数のセグメントから成る場合は、必ずすべてのセグメントを記述し、それらすべてに値を設定するようキー バッファーを定義してください。すべてのセグメントについて検索条件を設定しない場合は、代わりに Get Greater Than Or Equal オペレーションを使用してください。
  5. キー番号に正しいキー パスを設定します。システム定義のログ キー(システム データ)を使用するには、125 を指定します。

結果

Get Equal オペレーションが正常に終了した場合は、トランザクショナル インターフェイスでは要求したレコードがデータ バッファーに、そのレコードの長さがデータ バッファー長に返されます。

Get Equal オペレーションが正常に実行されなかった場合は、トランザクショナル インターフェイスから次のステータス コードのいずれかが返されます。

3
ファイルが開いていません。
4
アプリケーションがキー値を見つけられません。
6
キー番号パラメーターが不正です。
22
データ バッファー パラメーターが短すぎます。

このオペレーションは、キーのヌル インジケーター セグメントにゼロ以外の値が含まれている場合にはステータス コード 4 を返します。Get Equal を使ってヌルのレコードは検索できません。これは、ヌルの定義はあいまいなものであり、どの値とも等しくならないからです。ヌル値の検索が必要な場合は、Get First オペレーションに続けて Get Next オペレーションを使用します。

ポジショニング

Get Equal オペレーションを実行すると、完全な論理カレンシーおよび物理カレンシーが確立し、取得したレコードが現在のレコードになります。


Get Directory(18)

Get First(12)