收录日期:2018/09/20 15:44:01 时间:2016/05/23 01:21:05 标签:数据库及相关技术
TADOQuery* myset = new TADOQuery(Application);
try{
myset->Connection=tado;//tado是已连接数据库的TADOConnection
   myset->SQL->Clear();
   myset->SQL->Add("select * from table1");
   myset->Open();
   myset->Close();
   delete myset;
}
catch(const EOleException &e){
   ShowMessage(e.Message);
   delete myset;
}

如果table1表里有数据,运行没问题,如果是空的,myset->Close()就会出错,catch到的信息是“eof或bof有一个是真,要求操作的的是当前操作”(记不清了,大概是这个意思)
就是说如果数据库中没有数据我就不能Close?!!!而且就算有数据,我取数据处理,Next到最后一条记录后结束循环,Close时也会有这个错误,必须先First才能Close。我用的CB5,其他开发工具好象没这个问题,这该怎么解决?
打补丁是必须的,否则会出现莫名其妙的错误。打了补丁就当我没说。
up:)
从表现来看确实是没有打补丁所致,补丁可以从:
ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/BCB5EntUpdate1.exe  
ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/BCB5ADOUpgrade1.exe
下载,注意补丁的顺序是ADO补丁先打。
从表现来看确实是没有打补丁所致,补丁可以从:
ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/BCB5EntUpdate1.exe  
ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/BCB5ADOUpgrade1.exe
下载,注意补丁的顺序是企业版先打... 

香焦.... 你写错了
补丁,先装企业 的 ,后装ADO的
谢谢,确实是没打补丁