急,高手请进!!这是不是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。谢谢!
...全文
417 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Cheney 2005-07-12
我看是你的语句有问题。
回复
paranoia190 2005-07-12
游标的OPTIONS看看,肯定设置错误了
回复
liucuiqiang 2005-07-12
select 用adoquery1.open;
insert 用adoquery1.execute;
我的SQL SERVER 是这样的,呵呵,见笑了!
回复
sxqwhxq 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
自己顶一个先
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2456

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2005-07-10 08:36
社区公告
暂无公告