 |
Btrieve API Guide (v11) |
 |
|
Get Equal(5)
Get Equal オペレーション(B_GET_EQUAL)では、キー バッファーに指定されたキー値と等しいキー値を持つレコードを取得します。キーの重複が可能な場合は、同じキー値を持つグループの中で先頭のレコード(作成順)が取得されます。Get Key(+50)バイアスを使うと、ファイル内に値が存在するかどうかを検出することもできます。一般に、Get Key オペレーションの方が高速に処理されます。
パラメーター
|
オペレーション コード
|
ポジション ブロック
|
データ バッファー
|
データ バッファー長
|
キー バッファー
|
キー番号
|
送り値
|
|
|
|
|
|
|
戻り値
|
|
|
|
|
|
|
前提条件
- 対象となるファイルが開いていることが必要です。
- ファイルがデータオンリー ファイルであってはいけません。
手順
- オペレーション コードに 5 を設定します。オプションで、ロック バイアスも指定できます。
- +100 - 単一レコード ウェイト ロック
- +200 - 単一レコード ノーウェイト ロック
- +300 - 複数レコード ウェイト ロック
- +400 - 複数レコード ノーウェイト ロック
- ロックの詳細については、『Pervasive PSQL Programmer's Guide』を参照してください。
- ファイルのポジション ブロックを渡します。
- データ バッファー長に取得するレコードの長さ以上の値を設定します。
- キー バッファーに目的のキー値を指定します。キーが複数のセグメントから成る場合は、必ずすべてのセグメントを記述し、それらすべてに値を設定するようキー バッファーを定義してください。すべてのセグメントについて検索条件を設定しない場合は、代わりに Get Greater Than Or Equal オペレーションを使用してください。
- キー番号に正しいキー パスを設定します。システム定義のログ キー(システム データ)を使用するには、125 を指定します。
結果
Get Equal オペレーションが正常に終了した場合は、トランザクショナル インターフェイスでは要求したレコードがデータ バッファーに、そのレコードの長さがデータ バッファー長に返されます。
Get Equal オペレーションが正常に実行されなかった場合は、トランザクショナル インターフェイスから次のステータス コードのいずれかが返されます。
3
|
ファイルが開いていません。
|
4
|
アプリケーションがキー値を見つけられません。
|
6
|
キー番号パラメーターが不正です。
|
22
|
データ バッファー パラメーターが短すぎます。
|
このオペレーションは、キーのヌル インジケーター セグメントにゼロ以外の値が含まれている場合にはステータス コード 4 を返します。Get Equal を使ってヌルのレコードは検索できません。これは、ヌルの定義はあいまいなものであり、どの値とも等しくならないからです。ヌル値の検索が必要な場合は、Get First オペレーションに続けて Get Next オペレーションを使用します。
ポジショニング
Get Equal オペレーションを実行すると、完全な論理カレンシーおよび物理カレンシーが確立し、取得したレコードが現在のレコードになります。
 Get Directory(18) |
 Get First(12) |
|