不断辛苦,不断尝试,这把才将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
后来在http://topic.csdn.net/u/20101108/20/0ea01860-f4ce-482a-9784-3c726ca61ff5.html 找到了解决办法,谢谢这位朋友.
就是在.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 your C:\Qt\...\qt\plugins\sqldrivers\, and copyC:\MySQL\MySQL51\lib\opt\libmysql.dll to your C:\Qt\...\qt\bin\.
程序运行结果:
Starting E:\WorkPlace\Qt\dbdemo-build-desktop\debug\dbdemo.exe...
yes
oh yeah...今天的任务完成....准备睡觉