[求助]关于VFP中一个逻辑判断的语句,难倒VFP本身有BUG?
例如:表1:字段(姓名,生日,号码) 其中“号码”为数值型
表2:字段(姓名,生日,标识) 其中“标识”为数值型,初始全为0
以上两个自由表。
本人编制以下程序,实现在表2中找出与表1中“姓名”相同的并且“号码”数大于50的人,在表2相应位置将“标识”替换为 1:
select 表1
do while .not. eof()
select 表2
replace all 标识 with 1 for alltrim(姓名) = alltrim(表1.姓名) .and. 表1.号码 > 50
select 表1
skip
enddo
一个很简单的循环查找功能。本人初学VFP用的6.0,练习时发现一个问题:
这句语句:replace all 标识 with 1 for alltrim(姓名) = alltrim(表1.姓名) .and. 表1.号码 > 50
如果换为:replace all 标识 with 1 for alltrim(表1.姓名) = alltrim(表2.姓名) .and. 表1.号码 > 50
查找结果会出错,有一个满足条件的记录会不标记,也就是查找结果少1个人!!!
为什么“alltrim(表1.姓名) = alltrim(表2.姓名)”与 “alltrim(表2.姓名) = alltrim(表1.姓名)”的逻辑判断会不同? 难倒VFP本身在逻辑判断上有漏洞?
不过按说这么有名的编程软件不该有漏洞啊。
以上疑惑不懂,请高手指点。
[ 本帖最后由 iori2iori2 于 2011-7-30 16:37 编辑 ]