急,高手请进!!这是不是ADO的一个bug啊?在使用ADOQuery组件执行Select等语句时总是报“未指定的错误”

at89c51 2005-07-10 08:36:43
我用delphi在ADO方式下连接Mysql数据库,在执行select语句时adoquery组件总是会报错: “未指定的错误”,奇怪的是换了Insert语句却可以成功执行。很郁闷,烦请高手指点,代码如下:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from statistic');//该select语句返回未指定错误
//adoquery1.SQL.add('insert into statistic (t_id, calendar, access_count) values(1,"2004-03-02",100)');//insert语句却可以成功插入数据,这是为什么呢??
adoquery1.open;

end;

--------- ADO 其他组件的属性--------
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=MSDASQL.1;Password=root123;Persist Security Info=True;U' +
'ser ID=root;Data Source=hpjx;Mode=ReadWrite'
LoginPrompt = False
Mode = cmReadWrite
Left = 40
Top = 8
end
object ADOQuery1: TADOQuery
Connection = ADOConnection1
Parameters = <>
Left = 104
Top = 24
end

我觉得这会不会是ADO的一个bug呢?我的系统是xp+ delphi7 + mysql-4.0.14b-win + MyODBC-3.51.03。谢谢!
...全文
504 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cheney 2005-07-12
  • 打赏
  • 举报
回复
我看是你的语句有问题。
paranoia190 2005-07-12
  • 打赏
  • 举报
回复
游标的OPTIONS看看,肯定设置错误了
liucuiqiang 2005-07-12
  • 打赏
  • 举报
回复
select 用adoquery1.open;
insert 用adoquery1.execute;
我的SQL SERVER 是这样的,呵呵,见笑了!
仙侣步惊云 2005-07-12
  • 打赏
  • 举报
回复
dephi7中ADO并无版本,而决定于操作系统的ADO版本,如果系统原MDAC是2.0,重新安装MDAC2.7后,ADO版本将变为2.7。所以用delphi开发数据库程序时,要特别注意ADO版本问题,如果开发系统的ADO和用户机器的ADO版本不一致,将会导致执行数据库操作发生错误。
cncharles 2005-07-12
  • 打赏
  • 举报
回复
帮顶一下,不过MSSQL不会这样吧
YFLK 2005-07-12
  • 打赏
  • 举报
回复
我也遇到了与你相似的问题(没有用mysql,但使用了ADO),但没有你那么运气好,问题到再还没解决
wwx213 2005-07-12
  • 打赏
  • 举报
回复
哈哈,不能用open,要用execsql
lwh430073 2005-07-12
  • 打赏
  • 举报
回复
可以用SQL Sever 啊
kindboy 2005-07-12
  • 打赏
  • 举报
回复
mysql 与 ADo 兼容性不太好,MYODBC 也做得不是很好,最好用最新的 MYodbc 本身他自己也在不断完善中
lily_1979 2005-07-11
  • 打赏
  • 举报
回复
是啊,不知道为什么还没有升级,是不是等delphi8。0一起出来
at89c51 2005-07-11
  • 打赏
  • 举报
回复
终于找到问题了!!
这真的是一个bug,而且很可能是由于myodbc的问题。我到www.mysql.com下载了最新的MyODBC-3.51.11-2-win.exe替换了原来的MyODBC-3.51.03.exe,并且下载安装了MDAC2.8.EXE,问题就解决了。
呜呜~~花了偶一整天的时间啊。谢谢各位!

还有一个问题:请问delphi7里面带的ado是什么版本的呢?已经是2.8的了吗?
michaelsheyong 2005-07-11
  • 打赏
  • 举报
回复
啊,ADO可以连接MYSQL,怎么连接的啊?麻烦告诉下!
smiler007 2005-07-11
  • 打赏
  • 举报
回复
自己解决了就好.......
崔作非 2005-07-11
  • 打赏
  • 举报
回复
版本就是2.8,这个东西好像好久都没有升级了。
崔作非 2005-07-11
  • 打赏
  • 举报
回复
这个问题,你得去问一下微软,MDAC是他家的东西。可能是有ADO.net的关系吧,才不升级了。
zgzxy 2005-07-10
  • 打赏
  • 举报
回复
是不是应该这样:
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from statistic');
adoquery1.open;
adoquery1.SQL.Clear;
adoquery1.SQL.add('insert into statistic (t_id, calendar, access_count) values(1,"2004-03-02",100)');
adoquery1.ExecSql;
出错指示的地方不一定绝对准确,查一查其他地方有没有问题!
lovend 2005-07-10
  • 打赏
  • 举报
回复
这样应该不是bug,这个都不能执行的话,那这个bug 玩笑开大了。呵呵。
在检查看看有什么地方没设置好。
pilicat 2005-07-10
  • 打赏
  • 举报
回复
你把 select * from statistic 改为:

select * from "statistic"

试试。
涩色滴人 2005-07-10
  • 打赏
  • 举报
回复
应该是你delphi或myodbc没装好吧。

如果是这样简单的语句,是不可能出错的啊。
at89c51 2005-07-10
  • 打赏
  • 举报
回复
自己顶一个先

2,497

社区成员

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

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