Delphi连接MySQL真麻烦,研究了一天,从网上找了无数文章,下载了无数插件都没解决。最后返璞归真,老老实实用ADO来连接,发现也不是很顺利,但最终还是连接成功了。多少有点心得:ADO各个组件的作用和联系必须清楚,否则设置起来很容易混乱。总结一下用ADO连接MySQL5.1要点:
1、需要下载MySQL的ODBC支持,我用的官网mysql-connector-odbc-5.1.7-win32.msi(这个一般没问题,下载安装即可)
2、通过ODBC管理建立系统DSN(这个也简单,无非是选择MySQL的ODBC,设置服务器、用户名、密码)
3、熟悉ADO控件知道其作用和相互联系。(难点)
TADOConnection作用是通过设置ConnectionString连接字符串(例如:服务器localhost、用户名root、密码123456)连接默认数据库DefaultDatabas(mysql)。
TADOQuarry作用是执行查询语句并保存查询结果,需要设置SQL(如 select * from user;),感觉这里SQL语句只能是一条。该组件与TADOConnection联系密切,Connection属性应该设置为TADOConnection的实例(如conMySQL)。
这样有数据库连接,有查询操作,剩下的任务就是把结果显示出来。这里需要两个组件支持:
TDataSource顾名思义:数据源,是数据显示和查询结果之间连接的一个桥梁,其DataSet属性设为TADOQuarry的实例(qryMySQL)
TDBGrid是显示结果的数据组件,其DataSource属性设置为TDataSource实例即可(如dsMySQL)
4、激活连接以生效,TADOConnection的connected设置为真,另外TADOQuarry的active设置为真。
在实际应用中,不用建立系统DSN,只需要安装ODBC后即可用动态方式创建连接。
procedure TForm1.Button1Click(Sender: TObject);
begin
try
ADOConnection1.ConnectionString:=('DRIVER={MySQL ODBC 3.51 Driver};'+
'SERVER=localhost;'+
'DATABASE=wm;'+
'USER=root;'+
'PASSWORD=mcncc;'+
'OPTION=3;');
ADOConnection1.Close;
ADOConnection1.Open;
except
application.MessageBox('无法连接数据库服务器.请与管理员联系','提示',MB_ICONINFORMATION);
end ;
ADOQuery1.Active:=true;
end;