- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有以下问题:
SETCURRENTKEY
的实际作用是什么?SETCURRENTKEY
有什么好处?SETCURRENTKEY
?SETCURRENTKEY
?我一直在整个互联网和“IT Pro Developer Help”内部 Navision 文档中搜索这个记录不完整的函数,但我找不到正确的问题答案。
我唯一知道的是 SETCURRENTKEY
设置记录变量的当前键并根据它对记录集进行排序。当 SETCURRENTKEY
仅与几个键一起使用时,它可以提高查询性能。我不知道当数据库使用索引与不使用索引时实际发生了什么。
有人告诉我 SETCURRENTKEY
是这样工作的:
It is like the old sorting card system in a library: without
SETCURRENTKEY
you would have to go through each shelf and manually filter out for the book you want. You would find a mix of random books and you would have to say: "No, not this one. Yes, this one". WithSETCURRENTKEY
you can have an index analogous to the old system where you would just go to a book or music CD based on its 'Author' or 'Artist' etc.
这很好,但我仍然无法正确回答我的问题。
最佳答案
典型的用法是这样的:
RecordVar.SETCURRENTKEY(...)
RecordVar.SETRANGE(Field, ...)
RecordVar.SETFILTER(Field, ...)
RecordVar.SETRANGE(Field, ...)
...
IF RecordVar.FINDSET THEN REPEAT
// do something with records
UNTIL RecordVar.NEXT = 0;
SETCURRENTKEY 是声明性的,只有在执行 FINDSET 时才会生效。在执行 FINDSET 的那一刻,将在 RecordVar 表示的表上查询数据库,使用 SETRANGE/SETFILTER 声明的过滤器和 SETCURRENTKEY 声明的键/索引。
对于 5. 和 6. 以及一般来说,我真的建议您熟悉 basic database index theory .这就是它的含义,您自己使用图书馆/书籍类比很好地解释了这一点。
关于database - Navision 中的 SETCURRENTKEY() C/AL 函数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25449116/
我有以下问题: SETCURRENTKEY 的实际作用是什么? SETCURRENTKEY 有什么好处? 为什么要使用 SETCURRENTKEY? 什么时候使用 SETCURRENTKEY? 使用索
我是一名优秀的程序员,十分优秀!