【高分】IBQuery.Locate无法定位问题。
我在进行数据验证的时候对IBQYBuild进行逐个检查,如果没有问题,最后定位到原来的记录上,iOldBuildNum,但最后在Locate定位的时候出现了无法定位的情况,我的代码比较多,无法全部贴出。
我的程序大概的意思是:
try
iOldBuildNum:IBQYBuild.FieldByName('BuildNum').asInteger;//原来的记录关键字。
IBQYBuild.DisableControls;
IBQYBuild.First;
while not IBQYBuild.eof do
begin
iBuild:=IBQYBuild.FieldByName('BuildNum').asInteger;
if (数据校验不合格) then
begin
IBQYBuild.EnableControls;
b1:=IBQYBuild.Locate('BuildNum',iBuildNum,[]);
if (询问是否继续保存)=否 then
Result:=False;
end;
IBQYBuild.Next;
end;
finally
IBQYBuild.EnableControls;
if Result then
b2:=IBQYBuild.Locate('BuildNum',iOldBuildNum,[]);
end;
问题是:b1,和b2经常返回False,可是我实时观察IBQYBuild的确能看见我要查找的记录。
我试过几次,有时候是其中一个失效,有时候两个都失效,但基本不会两个都成功。
我听同事说IBQuery的Locate方法的确有时候有问题,不知道有没有办法解决。