首先参考了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
2. 进入 Qt源码mySql相关目录:cd src\plugins\sqldrivers\mysql
3. 执行命令:qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/MySQL/lib/libmysql.lib" mysql.pro
上面命令的黑体,是mysql的头文件和库文件所在的位置,注意不要有空格, 如果路径使用的“\”,可能会有3个WARNING,可以不理会
在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:\,后面的路径任意如下图
2. 拷贝C:\mysql\lib\libmysql.dll l到环境变量path包含的目录下,我们copy到C:\Qt\4.8.2\bin;
3. 打开VS2008,文件->新建->项目(新建一个项目),选择Qt4 Projects->Qt Application,输入项目名称,我这边命名为:testMysql
4. 在Project Setting页面,选择SQL library。如果不选中,也可以后续在项目的属性中添加。
#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();
}
编译,运行。数据库连接成功。
文章评论(0条评论)
登录后参与讨论