Sql server 2005 Delphi-BOF或EOF为真,或者当前记录已被删除
当我试图在MS SQL Server 2005中的空表上进行选择时显示此错误:“BOF或EOF为True,或者当前记录已被删除”。我在Delphi5中使用了TADOConnection和TADODataSet来连接和检索数据库中的数据Sql server 2005 Delphi-BOF或EOF为真,或者当前记录已被删除,sql-server-2005,delphi,ado,delphi-5,Sql Server 2005,Delphi,Ado,Delphi 5,当我试图在MS SQL Server 2005中的空表上进行选择时显示此错误:“BOF或EOF为True,或者当前记录已被删除”。我在Delphi5中使用了TADOConnection和TADODataSet来连接和检索数据库中的数据 Conn := TADOConnection.Create(nil); DataSet := TADODataSet.Create(nil); Conn.ConnectionString := 'Provider=SQLOLEDB.1;Passwor
Conn := TADOConnection.Create(nil);
DataSet := TADODataSet.Create(nil);
Conn.ConnectionString := 'Provider=SQLOLEDB.1;Password=sa;' +
'Persist Security Info=True;' +
'User ID=user;Initial Catalog=mydb;' +
'Data Source=MYPC\SQLEXPRESS;' +
'Use Procedure for Prepare=1;' +
'Auto Translate=True;Packet Size=4096;' +
'Workstation ID=MYPC;' +
'Use Encryption for Data=False;' +
'Tag with column collation when possible=False';
Conn.LoginPrompt := False;
Conn.Open;
DataSet.Connection := Conn;
DataSet.CommandText := 'SELECT * FROM MYTABLE';
DataSet.Open;
DataSet.Free;
Conn.Free;
有没有一种方法可以检查数据库表是否为空而不会产生这样的错误?这是很久以前的事了,但我记得Delphi 5中的这个问题是通过Delphi update解决的。早期版本的ADO组件存在严重问题
另外,我还看到,您的代码没有使用典型的组件运行时创建,也没有使用一些容器(如数据模块或表单)(通常不太好)来可视化处理组件。有时还可以通过adoConnection.execute运行简单查询。如果不使用可视化组件,ADO的记录集对象的处理与Delphi的AdoDataset几乎相同。此错误最初发生在对MDAC_TYP(从内存更新为2.6)的更新中。据一位老人说 “这是SQL Server提供程序中的错误。设置
CursorLocation=clUseClient
以消除错误。”
有一个ADOExpress补丁可从获得,但链接不起作用。Embarcadero现在在这里主持:(感谢Jeroen的官方链接!)
我建议您下载并安装Embarcadero网站上列出的所有补丁,前提是您可以找到它们。在此处下载Delphi 5的ADO更新: 确保您还安装了定期更新:
--杰伦因为我花了一整天的时间在这上面,下面是我最后所做的总结 用ADO Express安装Delphi 5 Pro
如果您不使用ADO的Recordset对象来处理非可视代码,请使用
AdoDataSet.DisableControls
来大幅提高性能。编辑后可在Embarcadero的ftp站点上添加官方版本的链接谢谢,我想知道您是如何获得这些链接的,我的谷歌技能不好,我得到了它,ftpc.borland.com现在被ftpd.embarcadero.com取代,但所有文件和文件夹都是sameI get“此更新要求已安装ADOExpress更新包1。”。我试图将给定的下载链接修改为“d5adoupdate1.exe”,但在服务器上找不到该文件。我在哪里可以买到?可能是这样的。我从未跟踪过国际上的最新情况。它们应该在ftpd服务器上,但是因为它不允许目录浏览,所以我首先要说:谢谢!我找到了德语更新,还找到了第一个ADO Express更新!服务器区分大小写!一旦我有时间,我会张贴确切的链接。我卸载了Delphi5。重新安装。然后是delhpi专业德语更新。然后是ADO express,然后是ADO更新包1,然后是ADO更新包2。这花了我一整天的时间,我大概输入了30次许可证密钥。再次感谢!