FOR EACH中如何正确使用BY关键字
How to use BY keyword correctly in FOR EACH
我想按 Field4
降序浏览记录,但是当我输入代码 BY mybuffer.Field4 DESCENDING
时,出现错误
After "Field4 DESCENDING" not understandable (247) [translated].
FOR EACH mybuffer
WHERE mybuffer.Field1 = value1
AND mybuffer.Field2 = value2
AND mybuffer.Field3 >= value3
BY mybuffer.Field4 DESCENDING
USE-INDEX myindex
NO-LOCK:
/* do something */
END.
我做错了什么?
尽管我不确定 USE-INDEX 和 BY 的组合是否明智。但是你的问题很可能是选项的顺序。
按此顺序使用:
- 使用索引
- 无锁
- 通过
错误是 USE-INDEX "After field 4 descending" 的位置。就像错误信息所说的那样。
正确的语法是:
for each customer no-lock use-index cust-num
where sales-rep = "BBB"
by city:
display customer.
end.
FWIW 在 FOR EACH 循环中同时使用 USE-INDEX 不太可能是个好主意,将它与 BY 结合使用更不可能是个好主意。如果您允许,编译器可能会选择更好的索引(或复数索引)。
我想按 Field4
降序浏览记录,但是当我输入代码 BY mybuffer.Field4 DESCENDING
时,出现错误
After "Field4 DESCENDING" not understandable (247) [translated].
FOR EACH mybuffer
WHERE mybuffer.Field1 = value1
AND mybuffer.Field2 = value2
AND mybuffer.Field3 >= value3
BY mybuffer.Field4 DESCENDING
USE-INDEX myindex
NO-LOCK:
/* do something */
END.
我做错了什么?
尽管我不确定 USE-INDEX 和 BY 的组合是否明智。但是你的问题很可能是选项的顺序。
按此顺序使用:
- 使用索引
- 无锁
- 通过
错误是 USE-INDEX "After field 4 descending" 的位置。就像错误信息所说的那样。
正确的语法是:
for each customer no-lock use-index cust-num
where sales-rep = "BBB"
by city:
display customer.
end.
FWIW 在 FOR EACH 循环中同时使用 USE-INDEX 不太可能是个好主意,将它与 BY 结合使用更不可能是个好主意。如果您允许,编译器可能会选择更好的索引(或复数索引)。