首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Windows上Qt驱动MySQL数据库

2012-08-16 
Windows下Qt驱动MySQL数据库?????? 昨天是一场经过了如此纠结的MySQL数据库的卸载再安装的洗礼的一天,今天

Windows下Qt驱动MySQL数据库

?????? 昨天是一场经过了如此纠结的MySQL数据库的卸载再安装的洗礼的一天,今天的在Windows下Qt驱动MySQL数据库也是历经千辛万苦才到达成功的彼岸的。虽然遇到了各种乱七八糟的问题,不过总算是圆满解决,这也是令人欣慰的一点吧。谨以此文纪念下我的艰难曲折。如果能为大家提供一些帮助,我将不胜荣幸。

??????MySQL不能选择Typical型,这样会缺少库文件。可以选择Full型或Custom型。我安装的MySQL是Typical型的,所以在lib目录下是没有opt文件夹的,因此进行了重新安装(积累了N多经验,这次安装可算是小菜一碟)。为了图方便,我直接选择了Full型的,但这样会存在一个问题,MySQL默认的安装路径是C:\Program Files\MySQL\MySQL Server 5.1,这个路径中存在空格,这会在后面的操作中出现问题。我的解决方案是在C盘下直接新建一个mysql文件夹,将C:\Program Files\MySQL\MySQL Server 5.1\include 和C:\Program Files\MySQL\MySQL Server 5.1\lib目录拷到C:\mysql文件夹下。

?????? 安装好MySQL后,进行Qt的安装。将Qt下的bin和QT\qt\bin配置环境变量。

?????? Qt是集成了mingw的,看到网上说要下载MinGW,不管三七二十一,我也下载安装了一下。将MinGW的bin配置环境变量。

?????? mingw使用的库和msvc使用的不同格式的库而引起的。而mysql只提供了msvc可使用的库,所以需要下载一个动态库格式转换工具,网址为: http://www.qtcn.org/download/mingw-utils-0.3.tar.gz,解压后把里边bin目录里的remip.exe拷到mingw的bin目录。我是把reimp.exe同时也放到了MinGW的bin下(我也不知道有没这必要,一来是首次接触Qt这东东,二来也没看到网上详细的解释)。

以下为本人机器上的命令行操作,路径请修改为自己设置的:
过程:
1:从libmysql.lib生成libmysql.a文件(mingw使用的静态链接文件为linux格式 *.a)
>>C:
>>cd mysql\lib\opt
>>reimp -d libmysql.lib (生成 libmysql.def文件)
>>dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

2:生成Qt下的mysql驱动:
>>cd \
>>cd qt\src\plugins\sqldrivers\mysql
>>QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
>>mingw32-make

在这个时候,我遇到问题。在执行完QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
会出现警告。

?

WARNING:?(internal):1:?Unescaped?backslashes?are?deprecated.? ?

WARNING:?(internal):1:?Unescaped?backslashes?are?deprecated.???

WARNING:?(internal):1:?Unescaped?backslashes?are?deprecated.?

?

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("gamesql"); db.setUserName("root"); db.setPassword("netjava"); bool ok = db.open(); if(!ok){ qDebug()<<"failuer"; qDebug()<<db.lastError(); }else{ qDebug()<<"success"; }

?

?

注意,要在项目的pro文件下加入

QT +=sql

才可以。

?

QT += core gui QT +=sql TARGET = test TEMPLATE = app

?

好了,这样一切OK啦~~

就一个简单的配置驱动问题,弄了一天,整个人就属于焦头烂额的状态,不过收获还是有的嘛。在尘埃落定的那一刻,还是蛮开心的~~(*^__^*) ~~

?

驱动安装问题小结一下:

1.MySQL的include和lib路径中不能含有空格。

2.下载mingw-utils-0.3.tar.gz 将其解压后的reimp.exe放到mingw下,执行生成libmysql.a文件

3.配置Qt环境变量。同时我也把WinGW也配置了环境变量(我不知道这是否必要)。

4.用qmake和make命令生成MySQL驱动。

4.警告解决,用记事本打开D:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\ mysql.pro文件配置文件。

5.如果有vc98相关环境变量,将vc98的环境变量先删了,装好后再恢复。

?

希望能对大家有帮助~~

?

?

?

?

?

?

 

热点排行