程序总是报:BOF 或 EOF 中有一个是“真”.......?请教解决方法,附程序(200)

  • 主题发起人 主题发起人 ATY
  • 开始时间 开始时间
A

ATY

Unregistered / Unconfirmed
GUEST, unregistred user!
程序第二次运行到ADODS1 的active:=false时报错“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。”ADODATASET 简写为 ADODS1 、ADODS12 with DM.ADODS1 do begin Active:=false; CommandText:='select distinct br_no from sms_num order by br_no '; Active:=True; end; DM.ADODS1.First; while not DM.ADODS1.Eof do begin //1 with DM.ADODS2 do begin ????第一遍没有问题,当第二次循环到这里时就报错 Active:=false; CommandText:='select a.no,round(b.byear/100000000,1) ' +'from sms_zb a left outer join news b on ' +'(a.zb=b.zb and a.ccy=b.ccy) ' +'where b.br_no='''+DM.ADODS1.Fields[0].AsString+''' ' +'order by a.no '; Active:=True; end; //格式匹配 DM.ADODS2.First; {while not DM.ADODS2.Eof do begin Str:=StringReplace(Str,'*',DM.ADODS2.Fields[1].AsString,[rfIgnoreCase]); DM.ADODS2.Next; end;} {//插入sms_content with DM.ADOCMD1 do begin CommandText:='insert into sms_content values('''+DM.ADODS1.Fields[0].AsString+''','''+Str+''')'; Execute; end; } //showmessage(DM.ADODS1.Fields[0].AsString); DM.ADODS1.Next; end; //1
 
更正一下:程序第二次运行到ADODS2的active:=false时报错
 
更正一下:程序第二次运行到ADODS2的active:=false时报错什么错误?
 
运行好后加入if ADODS1.Active then ADODS1.Close;if ADODS2.Active then ADODS2.Close;试试。
 
程序第二次运行到ADODS1 的active:=false时报错“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删
 
执行到if ADODS2.Active then ADODS2.Close;还是报刚才的错
 
用的什么版本的delphi? 以前的ado会出现上面的错误~~打了补丁就没事了~
 
请升级你的MDAC。去微软网站Down
 
多人接受答案了。
 
后退
顶部