• 7938阅读
  • 2回复

[共享]qt5 vs2010编译mysql驱动 [复制链接]

上一主题 下一主题
离线ppdayz
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-03
qt5 vs2010编译mysql驱动
我的qt装的是http://download.qt-project.org/official_releases/qt/5.0/5.0.2/qt-windows-opensource-5.0.2-msvc2010_32-x86-offline.exe
源代码位置:E:\SDKs\QtSDK\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\mysql
把mysql的库放入源码位置,库就是去装个mysql-client,在mysql官网就可以下到,装的时候可以只装库,注意:要在32位的机器上安装
因为64位的机器上装出来的库是64位的。没有32位的机器就装个xp虚拟机,然后在虚拟机里面装了再考出来:

看上面的路径。
在Qt Creator中打开 mysql.pro
在qsql_mysql.pri中加入库


用右键添加就可以了,不用打字。点击编译,很快的

编译生成的目录
E:\plugins\sqldrivers
这个路径也不高兴改了,就默认的吧。


最后把libmysql.dll  放在 E:\SDKs\QtSDK\Qt5.0.2\5.0.2\msvc2010_opengl\bin
不然会报错:QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3
这里是找到了 E:\SDKs\QtSDK\Qt5.0.2\5.0.2\msvc2010_opengl\plugins\sqldrivers\qsqlmysql.dll 的驱动,但是qsqlmysql.dl依赖的libmysql.dll的没有


qsqlmysql.dll 放在   E:\SDKs\QtSDK\Qt5.0.2\5.0.2\msvc2010_opengl\plugins\sqldrivers
不然会报错:QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QODBC QODBC3
离线ppdayz

只看该作者 1楼 发表于: 2013-05-03
上面的方法是因为我的机器是64位的win7,如果是32位的就直接指明MYSQL_PATH就可以了,不用这么麻烦
离线lzh1104

只看该作者 2楼 发表于: 2013-10-28
QSQLITE,QMYSQL,QMYSQL3,QODBC,QODBC3,QPSQL,QPSQL7
cannot open database.
Reason: Driver not loaded
有mysql 驱动了 但是还是open不了---

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动
  2.     db.setHostName("localhost");
  3.     db.setDatabaseName("demo_java"); // 我们之前建立的数据库
  4.     db.setUserName("root"); // 我们创建的 yunfan 用户名
  5.     db.setPassword("root"); // yunfan 用户的密码
  6.     bool ok = db.open(); // 尝试连接数据库
  7.     if(ok){ // 这里用yunfan已经成功连上数据库
  8.         ------
  9.     } else { // 打开数据库失败,显示数据库返回的失败描述
  10.         ui->display->append("cannot open database.");
  11.         ui->display->append("Reason: " + db.lastError().databaseText());
  12.     }


快速回复
限100 字节
 
上一个 下一个