access数据库的E_Fail状态错误,被整崩溃了!

PeakChen 2008-06-03 05:54:21
下面这个sql语句:SELECT id,(SELECT Sum(iCMark)/count(inum) FROM CourseMark GROUP BY iCourseid) AS iCMarkP,iMainid,sTeacher FROM ClassCourse .在access中可以查询,但在adoDataSet中执行提示:‘数据提供程序或其他服务返回E_FAIL错误'.
但把上面的sum该为Count,或是iCMark是整数而不是小数,就不会出错,或是不用子查询也不会出错。一天都没搞定这个问题,真是抓狂了。奇怪的是为什么在Access中执行不会出错,而在Delphi的程序中执行却会出错呢。
还有就是,ADODataSet在Open的时候是正常的,但在执行adoDataSet.RecordCount的时候提示以上错误!
高人,帮帮忙呀,快崩溃了
...全文
289 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCC的 2008-06-03
  • 打赏
  • 举报
回复
http://blog.csdn.net/ddangerous169/archive/2006/04/24/675496.aspx
PeakChen 2008-06-03
  • 打赏
  • 举报
回复
adoDataset.last;
adoDataset.first;
没有出错,但在执行adoDataset.recordcount还是出错。
在单步调试时,取adoDataset.recordcount出来,单独跟踪它的值是‘Delphi exception EOleException at $8B2F94D’但adoDataset这个值好像是正常的。
僵哥 2008-06-03
  • 打赏
  • 举报
回复
adoDataSet.MoveLast;
adoDataSet.MoveFirst;
然后再访问adoDataSet.RecordCount看看。
极有可能是Cursor的类型不支持回翻。如果是的,现象可能是adoDataSet.MoveLast是正常的,但是adoDataSet.MoveFirst;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧