|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
|
2013/3/10 21:42:52 |
标题: |
delphi xe2 利用 dbexpress 连接 mysql 问题 |
浏览:2461 |
|
加入我的收藏 |
楼主: |
代码如下: var SQLConnection: TSQLConnection; SQLQuery: TSQLQuery; begin SQLConnection := TSQLConnection.Create(Self); SQLQuery := TSQLQuery.Create(Self); try SQLConnection.ConnectionName := 'MySQLConnection'; SQLConnection.LoginPrompt := False; SQLConnection.LoadParamsOnConnect := False; SQLConnection.DriverName := 'MySQL'; SQLConnection.Params.Clear; SQLConnection.Params.Add('HostName=.,3306'); SQLConnection.Params.Add('Database=test'); SQLConnection.Params.Add('User_Name=root'); SQLConnection.Params.Add('Password=csit2012!@#'); SQLConnection.Params.Add('ServerCharSet=utf8'); SQLConnection.Params.Add('ConnectTimeout=60'); SQLConnection.Connected := True; SQLQuery.SQLConnection := SQLConnection; SQLQuery.SQL.Text := 'select * from city'; SQLQuery.Open; ShowMessage(IntToStr(SQLQuery.RecordCount)); SQLQuery.Close; finally SQLQuery.Free; SQLConnection.Free; end; end; 这是我用dbextress连接的代码 代码应该没啥问题 我觉得是不是mysql的版本问题 现在mysql版本是5.5的 连接的时候报错如下: DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path. 网络上也找了解决办法 如下: http://www.xue5.com/Developer/Delphi/631955.html 但是按照这个办法 问题依然存在 还请大家指教 谢谢。。
----------------------------------------------
- |
作者: |
|
2013/3/11 7:19:38 |
1楼: |
为什么不用unidac呢?很方便的。
----------------------------------------------
delphier
|
作者: |
|
2013/3/11 9:38:17 |
2楼: |
你试一下,先不用代码连.直接设置dbexpress的参数连. 如果能连上就是代码问题. 如果连不上,应该是差mysql的驱动所至. 我的判断是差mysql的DLL驱动所至.
----------------------------------------------
-
|
作者: |
|
2013/3/11 11:02:16 |
3楼: |
驱动没问题啊。 我已经按照步骤弄清楚了。 直接在控件上设置也是如此。 按理说应该非常顺才对 不太喜欢用第三方控件 最好delphi自家控件能搞定 3方控件 跟mysql版本相关 看中用dbexpress就是他走的是 调用mysql自带驱动 这样版本升级 只要dll换下即可 很好的。
----------------------------------------------
-
|
作者: |
t27 (koney) |
★☆☆☆☆ |
-
|
普通会员 |
|
2013/3/11 11:53:02 |
4楼: |
SQLConnection.Params.Add('HostName=.,3306'); 是否有誤?
----------------------------------------------
-
|
作者: |
|
2013/3/11 12:29:58 |
5楼: |
这个没错。
----------------------------------------------
-
|
作者: |
|
2013/3/11 12:34:58 |
6楼: |
代码调整了下 加了端口 详细代码如下: var SQLConnection: TSQLConnection; SQLQuery: TSQLQuery; begin SQLConnection := TSQLConnection.Create(Self); SQLQuery := TSQLQuery.Create(Self); try SQLConnection.ConnectionName := 'MySQLConnection'; SQLConnection.LoginPrompt := False; SQLConnection.LoadParamsOnConnect := False; SQLConnection.DriverName := 'MySQL'; SQLConnection.Params.Clear; SQLConnection.Params.Add('HostName=127.0.0.1'); SQLConnection.Params.Add('Port=3306'); SQLConnection.Params.Add('Database=mysql'); SQLConnection.Params.Add('User_Name=root'); SQLConnection.Params.Add('Password='); SQLConnection.Params.Add('ServerCharSet=utf8'); SQLConnection.Params.Add('ConnectTimeout=60'); SQLConnection.Connected := True; SQLQuery.SQLConnection := SQLConnection; SQLQuery.SQL.Text := 'select * from user;'; SQLQuery.Open; ShowMessage(IntToStr(SQLQuery.RecordCount)); SQLQuery.Close; finally SQLQuery.Free; SQLConnection.Free; end; end; 代码应该是没问题的了 我mysql版本是:mysql-5.6.10-win32 delphi版本是:delphi xe2 早上在网络上找了很多 下了一个别人提供的libmysql.dll sqlconnect居然可以连接成功了 但是当代码执行到sqlquery的open的时候 报错了 错误信息是:DBX Error: Unsupported field type 我觉得 可能还是这个dll有问题。
----------------------------------------------
-
|
作者: |
|
2013/3/11 18:04:58 |
7楼: |
自己再顶下这个问题。。。
----------------------------------------------
-
|
作者: |
|
2013/3/11 19:35:57 |
8楼: |
直接控连都报旬的话就肯定是驱动问题了。我以前遇过 那个DLL要重新下过
----------------------------------------------
-
|
作者: |
hncsl (hncsl) |
★☆☆☆☆ |
-
|
普通会员 |
|
2013/3/11 20:09:46 |
9楼: |
这个是xe2连接mysql的驱动问题。在网上找找。原来做过这个测试,后来找了一个连接驱动,替换一下就可以了。哪个驱动叫什么给忘了。
----------------------------------------------
-
|
作者: |
|
2013/3/12 10:59:23 |
10楼: |
求助ing。。。我找了好多驱动 驱动不就是在mysql的bin下面吗? 直接copy他就好了嘛。。 可是还是不行。。
----------------------------------------------
-
|
作者: |
|
2013/3/12 15:22:07 |
11楼: |
继续顶。。。
----------------------------------------------
-
|
作者: |
|
2013/3/13 9:08:55 |
12楼: |
放弃dbexpress了 决定用unidac
----------------------------------------------
-
|
|