我使用TADOConnection,TADOQuery(或TADOTable)来连接数据库(如Access或SQL Server )时出现以下的怪现象:
当TADOQuery(或TADOTable)内没有记录时如运行TADOQuery.Close语句会出现错误提示‘exception Class EoleException with Message 'EOF 或EOF 中有一个是“真”,或者当前记录已被删除,所需操作要求一个当前的记录' '
请各位指教如何避免出现该问题。参与讨论者有分,问题解决立即结帖。
当TADOQuery(或TADOTable)内没有记录时如运行TADOQuery.Close语句会出现错误提示‘exception Class EoleException with Message 'EOF 或EOF 中有一个是“真”,或者当前记录已被删除,所需操作要求一个当前的记录' '
请各位指教如何避免出现该问题。参与讨论者有分,问题解决立即结帖。
解决方案 »
- 现在遇到一个很头痛的问题,就是编码转换的问题,请大家帮忙
- 关于Delphi中使用微软的TTS技术
- “文件或目录E:已损坏且无法读取。请运行Chkdsk工具。”--help me
- 请问,如何在程序中动态注册ODBC数据源?
- 请问 socket怎么发INT型的数据呀
- 如何在ISAPI程序中得到的虚拟路径?
- talbe 的记录数怎么获取啊?
- 谁有随机抽人的源代码:滚动显示相片,用按钮来“开始”和“停止”
- 高分求解:谁有最好的ACCESS数据库加密方法?
- 怎样用CM_MOUSEENTER,CM_MOUSELEAVE 实现SPeenButton按钮移进,移走换图片吗?
- 一个关于qq的安全漏洞!
- sql中的日期比较问题,在线等待
http://www.pchome.net/dld/download.php?url=program/D5ADOUpgrade.exe
D5ADOUpgrade.exe 15.85M Delphi5 ADO升级包1 ado pack1 Delphi5的ADO补丁升级包1,解决了很多ADO中的莫名其妙的错误。使用ADO编程一定要装它,否则会被型的一头雾水!http://www.pchome.net/dld/download.php?url=program/d5adoupdate2.exe
d5adoupdate2.exe 1.74M Delphi5 ADO升级补丁2 ADO pack2 这是Delphi5的ADO补丁二,修改了补丁一之后残留的一些bug。
if ADOConnection.active then
ADOConnection.Active=False;
我使用的是ADO+ORACLE 没有任何问题
and this problem occurs only on system other than my system . i think this
want be cause of using a component or dll that handle this .
the error is "either bof or eof is true or the current record has been
deleted'.
it occures when the query result is null and the Bof=Eof=true and when i
close the adoquery it raise this error.i use the delphi 5 update pack 2 for dbexpress but it doesn't correct and
that error will occur on closing the empty dataset.thanks to help me.
zall.不知道楼主的问题是否与这位老兄的一样?
如果是一样的话,建议,看一看你的数据表是否有主键索引呢?
Drate(鸟窝里的虫) ( ):我的问题跟你说的的确一样,我的数据表没有建索引,不知和主键索引有什么关系?
另外最查查数据库设计上的问题,也有可能是对表内容有些什么约束。
ftp://ftpc.borland.com/pub/delphi/devsupport/updates/adoexpress/D5ADOUpgrade.exe
ftp://ftpc.borland.com/pub/delphi/devsupport/updates/adoexpress/d5adoupdate2.exe
明天回公司装DELPHI6
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from Userinfo');
adoquery1.Open;
if adoquery1.RecordCount = 0 then
adoquery1.Close;
end;delphi5没有试过
打补丁后就没事了,
建议快下载ADO补丁。
http://www.csdn.net/cnshare/soft/4/4541.shtm
“exception Class EoleException with Message 'EOF 或EOF 中有一个是“真”,或者当前记录已被删除,所需操作要求一个当前的记录'”.NET Framework和delphi5有什么冲突呢?望高手指教!
和afei78223(阿飞)也碰到同样的问题,因为以前一直是BDE的TQuery ,所以连数据库一定要通过BDE或ODBC.
我在用ADOConnection连接SQL Server的时候也会出现这种情况,我的解决方法是.
每次打开记录集的时候,先断开和ADOConnection的连结.即:
ADOConnection1.connected:=false;
ADOConnection1.connected:=true;
Adoquery1.close;
Adoquery1.open;先关闭再打开即可解决.
ado别人用的都好好的.我开始没有想过补丁的问题,看来,我也应该想想丁的问题了.不过这个方法,虽然解决了报错问题,但问题.即原来连的ADOdataset控件,全部关闭了,并且断开,如果要想重新用别的,必须又一次打开它.希望起到拋砖引玉的作用.
希望大虾们指教.,一定要安装补丁才可以解决掉这个问题吗?关注中...
至于升级,由于我的好多东西是For Delphi5的,升级太麻烦,下次准备用Delphi7.0。