原创 qt编译mysql驱动(MSVC)并测试连接

2014-5-16 08:54 1836 8 8 分类: 软件与OS

首先参考了http://blog.sina.com.cn/s/blog_a6fb6cc90101gzm1.html

一、使用的相关软件

1.Qt:qt-win-opensource-4.8.2-vs2008.exe

2.vs2008

3.qt-vs-addin-1.1.11-opensource.exe

由于前面有其他项目使用的是QT4.8.2+vs2008的环境,所以没有下载最新的;

注意:安装opensource的时候记得选择源码,否则编译的时候还得重新下载

4.mysql-installer-community-5.6.17.0.msi

下载和安装可以参考  MySQL下载与安装5.6.10.1安装图解

http://jingyan.baidu.com/article/f79b7cb3a25e759144023ee7.html

5. 由于后续编译不支持空格,把mysql的安装目录下include和lib拷贝到C:\mysql下

 

二、编译

1.  选择:开始->所有程序->Qt by Nokia v4.8.2(VS2008 OpenSource)->Qt 4.8.2 Command Prompt

qq图片20140515141925.jpg

2.  进入 Qt源码mySql相关目录:cd  src\plugins\sqldrivers\mysql qq图片20140515142806.jpg

3. 执行命令:qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/MySQL/lib/libmysql.lib" mysql.pro 

上面命令的黑体,是mysql的头文件和库文件所在的位置,注意不要有空格, 如果路径使用的“\”,可能会有3个WARNING,可以不理会

 

2.jpg
 
执行完成之后,就会生成Makefile文件等。
3.jpg
 
4. 执行命令:nmake 和nmake release
 

4.jpg

在Debug和Release文件下分别生产了qsqlmysqld4.dll、qsqlmysqld4.lib和qsqlmysql4.dll、qsqlmysql4.lib

拷贝qsqlmysqld4.dll和qsqlmysql4.dll 到Qt的plugins\sqldrivers目录中我这边的是C:\Qt\4.8.2\plugins\sqldrivers  注意: 不是src下的plugins\sqldrivers 

这样Qt的Mysql驱动编译已经完成。

 

三、测试

1. 在环境变量path下增加以下路径:

C:\Qt\4.8.2\include

C:\Qt\4.8.2\bin

注意:环境变量的变化,需要重启电脑后才能生效;还有一种方法就是在dos窗口 输入set path C:\,后面的路径任意如下图

 

5.jpg

2. 拷贝C:\mysql\lib\libmysql.dll l到环境变量path包含的目录下,我们copy到C:\Qt\4.8.2\bin;

3. 打开VS2008,文件->新建->项目(新建一个项目),选择Qt4 Projects->Qt Application,输入项目名称,我这边命名为:testMysql

 

6.jpg

4. 在Project Setting页面,选择SQL library。如果不选中,也可以后续在项目的属性中添加。

7.jpg
 
5. 在项目名称.cpp,我这边testMysql.cpp 增加以下代码
1). 增加相关头文件
#include <QMessageBox>
#include <QtSql/QSqlError>
#include <QtSql/qsqldatabase>

2).增加测试函数

bool ConnectMysqlTest()
{
	QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
	db.setHostName("localhost"); //设置主机名,如果是访问本机的mysql也可以用"localhost"表示
	db.setDatabaseName("test"); //设置数据库
	db.setUserName("root"); //设置用户名,确保上述数据库该用户名能访问
	db.setPassword("root"); //设置用户密码
	if(!db.open())
	{
		QMessageBox::critical( 0, QObject::tr("Database error"), db.lastError().text());
		return false;
	}
	QMessageBox::warning( 0, QObject::tr("Connect success"), "Connect to the mysql successfully");
	db.close();
	return true;
}

3). 在构造函数中调用上述测试函数ConnectMysqlTest();

testmySql::testmySql(QWidget *parent, Qt::WFlags flags)

	: QMainWindow(parent, flags)
{
	ui.setupUi(this);
	ConnectMysqlTest();
}

编译,运行。数据库连接成功。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条