寻求多次出现的表达式

时间:2016-01-29 20:35:04

标签: windows-7 visual-foxpro

如何在foxpro中搜索多个基于索引键的匹配项?对于chosendl中存在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

1 个答案:

答案 0 :(得分:0)

你的编码风格非常古老。您收到错误是因为:

替换......换取......

遍历整个表并将记录指针留在底部。然后跳过导致错误。

您的代码也非常难以阅读和遵循。我会修改为:

Update dl Set chosen = .T. Where subdir In (Select subdir From ctw)