Qt 4下连接MySQL数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:     前天刚装了个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开发速学宝典》出版,欢迎定购

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
分布式计算 关系型数据库 数据处理
Dataphin常见问题之没有建表的权限如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
3天前
|
关系型数据库 MySQL 数据安全/隐私保护
使用Navicate连接Mysql过程详解
使用Navicate连接Mysql过程详解
13 0
|
11天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
11天前
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第二章(Node连接本地数据库)
【4月更文挑战第2天】本文介绍了如何使用Node.js连接本地MySQL数据库。首先,提到了在MySQL官网下载安装数据库和使用Navicat for MySQL进行数据库管理。接着,通过`yarn add mysql`在项目中安装数据库依赖。然后,创建`app.js`文件,设置数据库连接参数,并建立连接进行查询操作。遇到导入模块的错误后,修改导入方式为CommonJS语法。
30 1
|
14天前
|
SQL 监控 关系型数据库
PG数据库释放闲置连接
PG数据库释放闲置连接
21 0
|
14天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL 安装及连接
MySQL 安装及连接
33 0
|
23天前
|
存储 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
|
24天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
125 3
|
25天前
|
网络协议 数据库连接 网络安全
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败
13 0
|
25天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
27 0

推荐镜像

更多