如何在foxpro中搜索多个基于索引键的匹配项?对于chosen
和dl
中存在T
字段匹配的所有行,我想将表格subdir
中的ctw
字段更改为dl
表。对ctw
内的所有行重复此匹配搜索。 dl
中具有相等subdir
值的记录不按顺序排序。
目前,在将do while not eof()
更改为chosen
T
之后,代码将在第17行dl
嵌套循环中以文件结尾遇到消息退出仅匹配subdir
的第一个ctw
值的记录。
select 0
use ctw
select 0
use dl
index on subdir to subdir.idx
select ctw
do while .not. eof()
select dl
seek ctw -> subdir
if found()
do while not eof()
replace chosen with .t. for ctw -> subdir = dl -> subdir
skip
enddo
endif
select ctw
skip
enddo
答案 0 :(得分:0)
你的编码风格非常古老。您收到错误是因为:
替换......换取......
遍历整个表并将记录指针留在底部。然后跳过导致错误。
您的代码也非常难以阅读和遵循。我会修改为:
Update dl Set chosen = .T. Where subdir In (Select subdir From ctw)