Qt 4下连接MySQL数据库

系统 1940 0
前天刚装了个Qt4for windows,发现安装的时候MySQL等数据库插件都没有安装,像Qt X11版一样,都需要自己安装这些插件。
在Qt的安装目录C:\Qt4.1.2\下,有个src目录,进入plugins\sqldrivers\mysql,可以看到两个文件,main.cpp和mysql.pro,很显然要用qmake来完成编译、生成目标。
编 译前,首先保证依赖的MySQL头文件和库文件正确。首先MySQL安装目录下的include中的所有文件拷到qmake时能找到的目录下,接着从 lib/opt目录下拷出libmysql.a,其实lib/opt下只有libmysql.lib和libmysql.dll,从网上搜了一下找到一个 方法从libmysql.dll生成libmysql.a:

1 、安装好MySQL (如果不愿意安装,找个libmySQL.dll文件也可以)

2、下载Pexports工具

3、转换操作: pexports libmysql.dll > libmysql.def

4、使用MinGW的 dlltool转换成为libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k

5、尝试是否成功:
将生成的libmysql.a 拷到qmake的lib搜索路径下后在plugins\sqldrivers\mysql目录下做:
qmake -project
qmake
make

如果再出现象mysql_connect@xx (xx是数字)的错误提示。就执行第6步。

6、修改libmysql.def文件,给mysql_connect加上@xx,即mysql_connect@xx

7、重做第4步

8、然后尝试第5步,如果还是出现错误提示。就作第6步。一直到没有错误为止。

最后C:\Qt4.1.2\plugins\sqldrivers下将会生成需要的libqsqlmysql.a和qsqlmysql.dll。

找了一个测试文件,通过。
#include<QtSql>
#include<QtGui>


boolcreateConnection(){
QSqlDatabasedb
= QSqlDatabase::addDatabase( " QMYSQL " ) ;
db.setHostName( " localhost " ) ;
db.setDatabaseName( " test " ) ;
db.setUserName( " test " ) ;
db.setPassword( "" ) ;

if(!db.open()){
QMessageBox::critical(
0 , QObject::tr( " DatabaseError " ) ,
db.lastError().text())
;

returnfalse
;
}

QSqlQueryquery
;
//query.exec( " insertintobookvalues(3,'title','author') " ) ;
query.exec( " selecttitle,authorfrombook " ) ;

while(query.next()){


QStringtitle
= query.value( 0 ).toString() ;
QStringauthor = query.value( 1 ).toString() ;

QMessageBox::critical(
0 , title , author) ;

}


returntrue
;
}



intmain(intargc
, char**argv){

QApplicationapp(argc
, argv) ;
if(!createConnection()){

return
1 ;
}

returnapp.exec()
;

}

原文:http://www.blogjava.net/felicity/archive/2006/08/28/66280.html


国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》 发布

《Java Web开发速学宝典》 出版,欢迎定购

Qt 4下连接MySQL数据库


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论