1

在 Extensbile Strage Engine (ESE/JetBlue) 中,我有一个表,其中包含我想使用两个索引定位的数据

假设每一行都有三个整数 X、Y 和 Z。我想快速找到 X=10 和 Y=20 的所有行(例如)

结果集将包含 X=10、Y=20 和 Z= 的所有条目,只要 Z 恰好是

这可能吗?

的顺序

JetSetCurrentIndex()、JetMakeKey()、JetSeek() 和 JetMove() 让我感到困惑。我不是 100% 这甚至可以不搜索 X=10 然后过滤所有 Y!=20 我自己的值?

谢谢!

4

1 回答 1

3

您可以使用JetIntersectIndexes API 做到这一点,该 API 返回包含在两个索引范围内的所有记录。你需要:

  1. 对于第一个键值:

  2. 对于第二个键值:

  3. 使用两个索引范围调用JetIntersectIndexes以创建匹配书签的临时表。

  4. 枚举调用( )返回的临时表JetMove。检索记录书签 ( JetRetrieveColumn) 并转到记录 ( JetGotoBookmark)。
  5. Close the temporary table when done! (JetCloseTable).
于 2010-11-12T19:15:33.100 回答