Delphi XE3连接远程MYSQL全过程解析

delphi_mysql

今日在再次写代码的时候发现以前经常用的DELPHI连接MYSQL怎么不能用了。应该是我换了64位的操作系统,以前的配置都丢失的缘故。

回想当时也是研究了一些时间,现在发现忘记了又要从新研究,就不如一次把所有的流程都记录下来,方便以后自己再忘记就不是很好了。

我当前的环境是64位电脑+Delphi XE3,相比之前的32位电脑,这里就要区分好当前的操作系统是32位还是64位的。

首先第一步需要下载安装MYSQL连接的驱动文件。我这里下载的是64位的,文件名为:mysql-connector-odbc-5.2.5-winx64

然后需要配置一下ODBC源。

ODBC源在 控制面板->数据源->ODBC数据源

网上传言ODBC也分32位和64位,具体位置在

64位版的位置:C:\windows\system32\odbcad32.exe

32位版的位置:C:\windows\sysWOW64\odbcad32.exe

我个人没有测试区别来。我64位的系统,在控制面板中打开就是64位的,至少我是这样认为的。

2

然后是添加数据源,记得选择当前电脑安装的数据源

3

4

这里我选择的是 MySql ODBC 5.2 Unicode Driver的版本 (ANSI Driver是指 单一的语言支持 Unicode Driver是多语言的支持)

点击完成后就是下图输入服务器的账号和密码

5

分别写入数据源名称、数据源描述、数据库的账号和密码和服务器地址,添加完毕后可以点击Test。

 

然后在DELPHI中添加控件ADOConnection1 双击控件修改配置连接文件

6

可以选择 添加连接文件和使用连接的字符串,连接文件会把密码暴露在文件中,连接字符串修改和移植的时候比较麻烦操作。

配置连接文件快速创建办法是可以新建一个文件夹xdfexam.udl 后缀是 UDL双击打开,就到了配置服务器账号密码的地方了

7

点击 编译和新建、创建数据库源

8

9

和前面说的一样选择数据源即可。

10

浏览保存到指定位置,连接文件已经创建完成,之后又是配色服务器账号密码的地方。

11

12

连接数据库是需要在ADOConnection1 中选择 LoginPrompt 选择false,意思是在每次连接数据库的时候无需弹出密码登入框

最后的问题,如果出现"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配"。的问题 需要确认当然编译的程序是否与对应的MYSQL连接驱动培训想匹配

就是看看64位的mysql数据源是否编译的64位的程序,Delphixe3中设置64位和32位的地方见下图

并且右键激活 64位的编辑即可

13

14

最后是数据库连接的代码和测试代码

数据控件连接代码如下

procedure TForm1.FormCreate(Sender: TObject);

begin

form1.AdoQuery1.Connection := AdoConnection1;

form1.DBGrid1.DataSource := DataSource1;

form1.DataSource1.DataSet := AdoQuery1;

end;

测试连接数据库代码

procedure TForm1.Button1Click(Sender: TObject);

begin

//form2.Caption:='查询数据库';

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from exam_user')   ;

ADOQuery1.Open;

ADOQuery1.ExecSQL;

end;

另外如果你也才有WAMP这种快捷的mysql服务的话,请确认你的Mysql的版本是否与Mysql的连接器的版本符合

如果使用5.0的Mysql却使用最新的Mysql的连机器自然会出错。

错误的信息就是:"参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突"

这种情况下可以换一个较低版本的连机器喽 我用的是

mysql-connector-odbc-3.51.30-winx64

最后还需要把一个mysql的DLL文件放在 bin目录下,此时,delphi连接远程mysql任务已完成

15

 



Delphi小叮当的淘宝店铺

指尖网络全面实现网站与淘宝店铺相连接,完成了在线支付的接口;全站交易全面支持淘宝交易,率先支持先测试后付费
软件/网站拍之前请先咨询客服,索要测试版本之后再拍下宝贝
Delphi小叮当竭诚为您提供最优质的服务
iamhack.taobao.com