关于用ADO连接Access的问题?(100分)

  • 主题发起人 主题发起人 olivetrees
  • 开始时间 开始时间
O

olivetrees

Unregistered / Unconfirmed
GUEST, unregistred user!
在我的应用中,用OLEDB4.00JET提供ADO连接Access库,程序运行正常,在控制面版中Access
驱动程序版本为4.00.3711.08,日期为99年。但有一次偶然升级了Microsoft Access Component
后程序出错,每次在查询一个记录时,如果记录集为空或运行到记录集的末尾便出现"BOF 或 EOF
中有一个中真,或者当前的记录已被删除,所需的操作要求一个当前的记录"错误,在控制面版中
的ACCESS驱动程序版本也发生了变化,变成4.00.5303.1,日期为00-5-5,这是什么原因,
会不会是两个版本不兼容?
 
安装ado的升级包2 。http://www.gzlove.net/download/
 
程序例子:
begin
with qryTool do
begin
Close;
Sql.Add('Select * from People Where CodeOfPeople="Olivetrees" and PassWord=');
Sql.Add(':Pass');
Parameters[0].Value := edTest.Text;
Open;
end;
qryTool.close;
end;

在此例子中,如果在edTest文本框中输入值,查到记录后,程序运行到qryTool.close时出现
"BOF 或 EOF 中有一个为真,或者当前的记录已被删除,所需的操作要求一个当前的记录"。
 
ado的bug,你先升级再试试.
 
已经升级过ADOUpdate,问题不在ADO,应是Jet OLE DB.
 
你还得装个升级包2,如果没有我可以发给你
 
我已经升级过了,还是不行。
但在别的机器上就运行正常,其中的区别就在于我的机器升级了
Microsoft Access component 2.6.
 
老兄,这问题讨论过n次了,你只要查查已答问题就会找到答案,这样对你解决问题和对这个论坛的读者都有好处。
 
我升级后解决了此问题,不过操纵主/从时从表无法显示记录,why?
 
我最近也遇到过。折腾了一整天,发现问题出在mac_type_26_cn上,例如,
数据库:Microsoft Access 2000
ADO版本:2.6cn
若执行以下程序段:
aADOQuery.Close;
aADOQuery.SQL.Text := 'SELECT aFld FROM aTable';
// aFld为aTable中的一字段名,aTable存在
aADOQuery.Open;
aADOQuery.Close;
则当aTable中有记录存在时运行正常,但当aTable中无记录时,执行最后一句aADOQuery.Close时将出现类似'EOF或BOF为真...'的出错信息!
另,若将上述程序段中的第二句改为使用聚族函数:
aADOQuery.SQL.Text := 'SELECT COUNT(aFld) FROM aTable';
则不会出现上述错误。
后将Program Files/Common Files/System/ADO下的msado15.dll(若装了2.6,则为520k左右,)将其替换为旧版(约333K)的文件即可。
希望对你有用。
 
无奈,重生装旧的Microsoft Access component 吧!
 
答案在这儿。
重新安装jet,不然还是不行。
人的主页上有:
www.swchen.jhnet.net.cn
 
我也遇上过,折腾ado的pack花了几个小时,才ok上interprise站点看看有
 
后退
顶部