开发者社区> geekori> 正文

Qt 4下连接MySQL数据库

简介:     前天刚装了个Qt4for windows,发现安装的时候MySQL等数据库插件都没有安装,像Qt X11版一样,都需要自己安装这些插件。
+关注继续查看
    前天刚装了个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> 


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

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

return false
; 


QSqlQuery query
; 
//query.exec("insert into book values( 3, 'title', 'author') "); 
query.exec("select title , author from book "); 

while (query.next()) { 


    QString title 
= query.value(0).toString(); 
    QString author = query.value(1).toString(); 

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



return true
; 




int main(int argc
,char** argv){ 

QApplication app(argc
, argv); 
    if (!createConnection()){ 

return 
1; 

       
    return app.exec()
; 

}

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


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

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一文带你了解MySQL之连接原理
搞数据库一个避不开的概念就是Join,翻译成中⽂就是连接。相信很多小伙伴初学连接的时候有些一脸懵,理解了连接的语义之后又可能不明白各个表中的记录到底是怎么连起来的,以至于在使用的时候常常陷入下边两种误区: 误区一:业务至上,管他三七二十一,再复杂的查询也用在一个连接语句中搞定 误区二:敬而远之,慢查询可能就是因为使用了连接导致的,以后再也不敢乱用了 所以本章就来学习连接的原理。考虑到一部分小伙伴可能忘了连接是个啥或者压根就不知道,为了节省他们百度或者看其他书的宝贵时间,我们先来介绍一下 MySQL 中支持的一些连接语法。 有兴趣的小伙伴也可以看看【数据库原理 • 二】关系数据库理论【直通车
14 0
从零开始学Mysql - 连接管理和存储引擎
本篇为个人mysql专栏的第二篇,第二篇将会是关于连接管理以及存储引擎的讨论,以及mysql底层的交互过程,这个概念在之前的mysql专栏中有提到过,这里再一次进行总结,在第一篇开篇的时候讨论过这个专栏的内容大多数都是参考《从根上理解Mysql》这本书,这里再次强调一遍,后续专栏文章不会再进行赘述。
14 0
MySQL和Navicat怎么连接
MySQL和Navicat怎么连接
24 0
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(上)
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(上)
27 0
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(中)
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(中)
18 0
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(下)
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(下)
20 0
微信小程序云开发连接mysql数据库,小程序云函数操作mysql数据库
微信小程序云开发连接mysql数据库,小程序云函数操作mysql数据库
38 0
《阿里云认证的解析与实战-数据仓库ACP认证》——功能演示一:实现AnalyticDB MySQL版弹性能力——五、连接集群
《阿里云认证的解析与实战-数据仓库ACP认证》——功能演示一:实现AnalyticDB MySQL版弹性能力——五、连接集群
25 0
​​软件开发入门教程网之​​MySQL 连接的使用
在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。
27 0
+关注
geekori
欧瑞科技创始人&amp;CEO,东北大学计算机专业硕士,拥有超过20年软件开分经验。欧瑞学院金牌讲师、51CTO学院金牌讲师、CSDN学院特约讲师、畅销书作者,企业内训讲师。曾出版过超过30本IT畅销书,涉猎移动开发、跨平台开发、机器学习、区块链、大数据、编译器等领域。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
高效MySQL的N个习惯
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像