在 ESE (JetBlue) 中,有没有办法限制使用多个键的搜索?

发布于 2024-09-27 12:40:00 字数 335 浏览 1 评论 0原文

在 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 的值?

谢谢!

In Extensbile Strage Engine (ESE/JetBlue) I've got a table that contains data I'd like to locate using two indexes

assuming that each row has three integers X, Y, and Z. I'd like to quickly locate all the rows where X=10 and Y=20 (for example)

the resulting set would contain all the entries where X=10, Y=20, and Z= whever Z happened to be

is this possible?

the sequence of

JetSetCurrentIndex(), JetMakeKey(), JetSeek(), and JetMove() confuse me. i'm not 100% this is even possible without searching for X=10 and then filtering all values where Y!=20 myself?

thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不打扰别人 2024-10-04 12:40:00

您可以使用 JetIntersectIndexes API 来执行此操作,它返回两个索引范围中包含的所有记录。您需要:

  1. 对于第一个键值:

  2. 对于第二个键值:

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

  4. 枚举调用返回的临时表 (JetMove)。检索记录书签 (JetRetrieveColumn)并转到记录 ( JetGotoBookmark)。
  5. 完成后关闭临时表! (JetCloseTable)。

You can do that with the JetIntersectIndexes API, which returns all records contained in two index ranges. You need to:

  1. For the first key value:

  2. For the second key value:

  3. Call JetIntersectIndexes with the two index ranges to create a temporary table of matching bookmarks.

  4. Enumerate the temporary table returned by the call (JetMove). Retrieve the record bookmarks (JetRetrieveColumn) and go to the records (JetGotoBookmark).
  5. Close the temporary table when done! (JetCloseTable).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文