1.#include <QtSql/QMYSQLDriver>去掉
然后重新运行程序
根据提示
2.如果找不到QMYSQL驱动,那么你需要先编译这个驱动。先到Plugins/SqlDriver下看看有没有qsqlmysql.*与qsqlmysqld.*的动态库文件。
如果没有,说明你没有编译mysql驱动插件。如果有但是连不上驱动,说明你的动态库没有放在程序的目录下(实质是没有放在程序可搜索的目录里),把这些动态库放在程序目录,不要少mysql的动态库(这个不是QT编译的那个QSQLMSQL的那个,是MYSQL自己的都太库)。
3.编译mysql驱动插件。
打开你的QT助手(Qt Assistant),查找这个“SQL Database Drivers”。里面有编译的方法。
注意了这个编译需要你提供MySql的头文件和库文件。你说的mysql.h即mysql的头文件了。如果你没有,去下载MYSQL的SDK。
首先:进入到自己相应的qt/src/plugins/sqldrivers/mysql 目录下 (我的目录为:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),这个下面有两个文件mysql.pro,一个mian.cpp! 用文本编辑器打开该目录下的mysql.pro文件 在mysql.pro中加入:INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.5\include" LIBS+="C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib"
保存并退出(即你的mysql的include 路径和 lib 下 opt 的 libmysql.lib 路径)
打开Qt 4.8.0 Command Prompt, 编译这个文件
#qmake -o Makefile mysql.pro
提示3条警告信息,但没影响
#mingw32-make (这个网上有好几个编译命令,我的是用nmake)
然后你会发现你的 qt 下这个 qt/plugins/sqldrivers路径(我的路径为S:\QT\4.8.0\plugins\sqldrivers下)下多了四个文件
分别为 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四个)这样基本上就编译成功,可以使用 mysql 了!~
最后安全起见再将 mysql下 bin 文件中libmysql.dll文件拷贝到 system32 下面 然后测试:
#include<QtGui>#include<QtSql>#include<cstdlib>
#include<QtGui/QApplication>#include<QtSql/QtSql>boolcreateConnection() {
qDebug()<<"Availabledrivers:"
QStringListdrivers=QSqlDatabase::drivers()foreach(QStringdriver,drivers) qDebug()<<"\t"<<driver
QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL")qDebug()<<"MYSQLdrivervalid?"<<db.isValid()}
intmain(intargc,char*argv[]) {
至于mysql.pro我是在网上下载的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)