不断辛苦,不断尝试,这把才将mysql的驱动ok了.
写了一个小小的demo
#include
#include
#include
#include
#include
int main(int argc,char *argv[]){
QApplication app(argc,argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("admin");
bool succ = db.open();
if (succ) {
qDebug("yes");
} else {
qDebug("No");
QMessageBox::critical(0,QObject::tr("Error"),db.lastError().text());
}
return app.exec();
}
在写这个程序的时候,忘记了之前在linux中写连接mysql的时候遇到过的问题.
就出现了如下的错误:
debug/main.o: In function `Z5qMainiPPc':
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:9: undefined reference to `_imp___ZN12QSqlDatabase17defaultConnectionE'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:9: undefined reference to `_imp___ZN12QSqlDatabase11addDatabaseERK7QStringS2_'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:9: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:10: undefined reference to `_imp___ZN12QSqlDatabase15setDatabaseNameERK7QString'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:11: undefined reference to `_imp___ZN12QSqlDatabase11setUserNameERK7QString'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:12: undefined reference to `_imp___ZN12QSqlDatabase11setPasswordERK7QString'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:13: undefined reference to `_imp___ZN12QSqlDatabase4openEv'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:21: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
E:\WorkPlace\Qt\dbdemo-build-desktop/../dbdemo/main.cpp:21: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
collect2: ld returned 1 exit status
就是在.pro文件中加入:
QT += sql
再有我在使用
QMessageBox::critical(0,QObject::tr("Error"),db.lastError().text());的时候,db.lastError()后面的.text()函数,在没有#include 的时候,没有自动提示.我的感觉和认识是没有自动提示,那么很有可能是错误的.但是加入这个之后.就可以了,不过,这头文件,只是所谓的头文件,那是一个目录?
有哪位朋友知道的,还请赐教.小弟感激!
---------------------------------------------
在完成上面的工作之后,
To use the SDK and QtCreator directly, copy these libraries to yourC:\Qt\...\qt\plugins\sqldrivers\, and copyC:\MySQL\MySQL51\lib\opt\libmysql.dllto
yourC:\Qt\...\qt\bin\.
程序运行结果:
Starting E:\WorkPlace\Qt\dbdemo-build-desktop\debug\dbdemo.exe...
yes
oh yeah...今天的任务完成....准备睡觉