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