 |
Btrieve API Guide (v11) |
 |
|
Step Previous Extended(39)
Step Previous Extended オペレーション(B_STEP_PREVIOUS_EXT)では、物理位置の直前からファイルの先頭へ向かって 1 つまたは複数のレコードを検索します。検索したレコードがフィルター条件を満たしているかどうかをチェックした上で、条件を満たすレコードだけを取得します。フィルター条件は論理式の形を取り、キー フィールドのみに制限されません。
Step Previous Extended オペレーションでは、既存のレコードの中から指定したフィールドを抽出し、抽出したフィールドだけを含む新しいレコードのセットを返すこともできます。
パラメーター
|
オペレーション コード
|
ポジション ブロック
|
データ バッファー
|
データ バッファー長
|
キー バッファー
|
キー番号
|
送り値
|
|
|
|
|
|
|
戻り値
|
|
|
|
|
|
|
前提条件
- 対象となるファイルが開いていることが必要です。
- 前の物理位置を確立しておくことが必要です(たとえば、Delete オペレーションの次に Step Previous Extended オペレーションを実行することはできません)。
手順
- オペレーション コードに 39 を設定します。オプションで、ロック バイアスも指定できます。
- +100 - 単一レコード ウェイト ロック
- +200 - 単一レコード ノーウェイト ロック
- +300 - 複数レコード ウェイト ロック
- +400 - 複数レコード ノーウェイト ロック
- ロックの詳細については、『Pervasive PSQL Programmer's Guide』を参照してください。
- ファイルのポジション ブロックを渡します。
- 入力データ バッファーと戻りデータ バッファーのどちらか大きい方を格納できるように、十分な長さのデータ バッファーを指定します。表 21 に示す構造体に従って、データ バッファーを初期化します。
- 上記の手順に従って、データ バッファー長に適切な値を指定します。
- トランザクショナル インターフェイスではバッファーを用意して、Extended オペレーションのワークスペースとして使用できるようにします。このバッファーのサイズは、[拡張オペレーション バッファー サイズ]オプションを使って構成します。データ バッファー構造体、取得される最長のレコード、およびリクエスターのオーバーヘッドの 355 バイト、これらの合計が設定したバッファー サイズを超えることはできません。(リクエスターのオーバーヘッドは、DOS ワークステーションのエンジンには適用できません。)
詳細
このオペレーションでは、Get Next Extended オペレーションの場合と同じ入力データ バッファーおよび戻りデータ バッファーを使用します。詳しくは詳細をご覧ください。
結果
このオペレーションでは、Step Next Extended オペレーションと同様の結果が返されます。詳しくは結果をご覧ください。
ポジショニング
Step Previous Extended オペレーションを実行しても、論理カレンシーは確立しませんが、検索された最後のレコードが現在の物理レコードになります。なお、このレコードは取得されているとは限りません。このレコードは、フィルター条件を満たして取得されたレコードか、またはフィルター条件を満たさないために拒否されたレコードのいずれかです。
メモ
トランザクショナル インターフェイスでは、Step Previous Extended オペレーションの後に Delete または Update オペレーションを実行することはできません。現在のレコードは検索された最後のレコードであるため、アプリケーションには、意図したレコードを適切に削除または更新しているかどうかを確認する方法がありません。
 Step Previous(35) |
 Stop(25) |
|