求ADO完整链接MYSQL5代码例子。

superxs 2008-07-12 12:58:31
刚开始用DELPHI,ADO方式。
数据源连接没问题,TADOConnection从弹出的数据链接属性里建立了链接字符
Provider=MSDASQL.1;Password=123456;Persist Security Info=True;User ID=root;Data Source=mysql_conn;Initial Catalog=mysql

那我要使用的话还要怎么样写,直接在下面用
ADOQuery1.close;
ADOQuery1.sql.Text:='select * from user';
ADOQuery1.open;
就报 没有打开的数据cannot perform this operation on a close dataset.
ADOQuery1上面还要怎么写,才能打开这个数据表呢,找了很多资料看,没头绪,求一ADO完整链接MYSQL5 的代码,谢谢。
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
JeffChung 2008-07-14
  • 打赏
  • 举报
回复
如果设置好了的话,看上去似乎代码没有问题。

单步看哪一句出错的,慢慢调了。继续关注
troysluo 2008-07-14
  • 打赏
  • 举报
回复
直接在控件里面设置数据源和连接吧!
步骤:1、先拖出这四个控件:DBGrid,DataSource,ADOConnection,ADOQuery
2、在ADOConnection控件中的ConnectionString的属性中写中你的数据库连接的命令,比如:Provider=MSDASQL.1;User ID=root;Extended Properties="DATABASE=dataBase_name;DRIVER={MySQL ODBC 3.51 Driver};OPTION=3;PORT=3306;SERVER=127.0.0.1;UID=root"
3、在ADOConnection控件中的Connected属性设置为:ture,user写你的mysql目前登陆的帐号,如果用默认的是root,密码为空。
4、选择DataSource控件,把该控件中的DataSet属性设置为ADOQuery1。
5、选择ADOQuery控件,把该控件中的Connection属性设置为ADOConnection1。
6、选择DBGrid控件,把该控件中的DataSource属性设置为DataSource1
7、完成以上的步骤后,把以下这几句话写在在button的事件里,就能读取出表了
var
str:String;
begin
str:='select * from table_name';
self.ADOQuery1.Close;
self.ADOQuery1.sql.Clear;
self.ADOQuery1.sql.Add(str);
self.ADOQuery1.Open;
end;
amdwinter 2008-07-13
  • 打赏
  • 举报
回复
接点分
dh9450 2008-07-12
  • 打赏
  • 举报
回复
如果连接没问题
多半不会是这段报的错
连MYSQL
有个3方组件 MyDAC 2ccc上有下
不错的
radarhp 2008-07-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 superxs 的帖子:]
//首先打开连接对象

ADOQuery1.close; //注释掉先,试试看?
ADOQuery1.sql.Text:='select * from user';
ADOQuery1.open;
就报 没有打开的数据cannot perform this operat…
[/Quote]
radarhp 2008-07-12
  • 打赏
  • 举报
回复
数据集是关闭状态,需要打开……检查代码吧
yangkunjie 2008-07-12
  • 打赏
  • 举报
回复
access和连接mysql是不一样的
但你的提示主要是dataset已经关闭了的提示,所以还是应该从语句分析,调试代码跟一下,看看dataset是在什么时候关闭的,究竟为什么会出现这个提示,多打几个断点,多调试几次,还有就是你看一下数据链接的高级属性是怎么设置的,就是手工建立connecitonstring的那个高级栏
继续关注
superxs 2008-07-12
  • 打赏
  • 举报
回复
同样代码,数据源我换ACCESS,就没有问题,问题在哪里呢?
superxs 2008-07-12
  • 打赏
  • 举报
回复
感谢回答,不过还是报

cannot perform this operation on a close dataset

是不是我用的驱动有问题?
我没有用那个3.51的MYSQL ODBC,用的
mysql-connector-odbc-5.1.4-win32.msi
不过数据源连接都没问题呢。
yangkunjie 2008-07-12
  • 打赏
  • 举报
回复
当然也可以像你写sql.text那种写法;
yangkunjie 2008-07-12
  • 打赏
  • 举报
回复
首先得把TADOConneciton连接上,加入是ADOCONNECTION1


ADOCONNECTION1.connected:=false;
ADOCONNECTION1.connectionstring:=Provider=MSDASQL.1;Password=123456;Persist Security Info=True;User ID=root;Data Source=mysql_conn;Initial Catalog=mysql';
ADOCONNECTION1.LoginPrompt:=false;
ADOCONNECTION1.connected:=true;

ADOQuery1.close;
ADOQuery1.Connection:=ADOCONNECTION1;
ADOQuery1.sql.clear;
ADOQuery1.sql.add('select * from user');
ADOQuery1.open;

2,497

社区成员

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

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