1

Extensbile Strage Engine (ESE/JetBlue) には、2 つのインデックスを使用して検索したいデータを含むテーブルがあります。

各行に X、Y、Z の 3 つの整数があると仮定します。たとえば、X=10 と Y=20 のすべての行をすばやく見つけたいと思います。

結果のセットには、X=10、Y=20、および Z= であるすべてのエントリが含まれます。

これは可能ですか?

のシーケンス

JetSetCurrentIndex()、JetMakeKey()、JetSeek()、および JetMove() は私を混乱させます。私は 100% ではありません。これは、X=10 を検索してから、Y!=20 のすべての値を自分でフィルター処理しなくても可能ですか?

ありがとう!

4

1 に答える 1

3

これは、2 つのインデックス範囲に含まれるすべてのレコードを返すJetIntersectIndexes API を使用して行うことができます。必要がある:

  1. 最初のキー値:

  2. 2 番目のキー値の場合:

  3. 2 つのインデックス範囲を指定して呼び出しJetIntersectIndexes、一致するブックマークの一時テーブルを作成します。

  4. 呼び出しによって返された一時テーブルを列挙します ( JetMove)。レコードのブックマークを取得し ( JetRetrieveColumn)、レコードに移動します ( JetGotoBookmark)。
  5. 完了したら、一時テーブルを閉じます。( JetCloseTable)。
于 2010-11-12T19:15:33.100 に答える