热度 8
2014-5-16 08:54
1793 次阅读|
0 个评论
首先参考了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,可以不理会 执行完成之后,就会生成Makefile文件等。 4. 执行命令:nmake 和nmake release 在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。如果不选中,也可以后续在项目的属性中添加。 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 (); } 编译,运行。数据库连接成功。