raj*_*azo 2 delphi sql-server-2005 ado delphi-5
当我尝试在MS SQL Server 2005中的空表上选择时显示此错误:"BOF或EOF为True,或者当前记录已被删除".我在Delphi 5中使用了TADOConnection和TADODataSet来连接和检索数据库中的数据.
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;
Run Code Online (Sandbox Code Playgroud)
有没有办法检查数据库表是否为空而不会产生此类错误?
此错误最初发生在MDAC_TYP更新(从内存到2.6).根据旧的Borland建议
"这是SQL Server提供程序中的一个错误.设置
CursorLocation = clUseClient为消除错误."
Borland提供了一个ADOExpress补丁,但该链接不起作用.Embarcadero现在在这里托管:ftp://ftpd.embarcadero.com/pub/delphi/devsupport/updates/adoexpress/d5adoupdate2.exe(感谢官方链接Jeroen!)
我建议您下载并安装Embarcadero网站上列出的所有补丁,假设您可以找到它们.
下载Delphi 5的ADO更新:ftp://ftpd.embarcadero.com/pub/delphi/devsupport/updates/adoexpress/d5adoupdate2.exe
确保您还安装了常规更新:
还有更多更新(Corba,原始ADO安装)和语言(法语,德语),但这些应该可以帮到您.
还有一个http://info.borland.com/devsupport/delphi/download_files/zlibupdate.zip,但它不在ftpd服务器上.
--jeroen