生成qsqlmysql4.dll libqsqlmysql4.a qsqlmysql4.dll libqsqlmysqld4.a 方法:
1)将MYSQL/MySQL Server 5.5/lib/opt下的libmysql.dll複制到system32目錄(我直接搜尋的)。
2)打開QT/QT/SRC/PLUGINS/SQLDRIVERS/MYSQL下的mysql.pro檔案,在第二行加入:
INCLUDEPATH += "D:/Program Files/MySQL/MySQL Server 5.1/include"
LIBS += "D:/Program Files/MySQL/MySQL Server 5.1/lib/opt/libmysql.lib"
(具體視情況而定,我用的方法是先搜尋,然後打開所在的檔案夾,然後拷貝位址欄内容。。。)
編譯後,隻要沒報錯誤就行。可以搜尋下QT的安裝目錄裡邊有沒有qsqlmysql4.dll libqsqlmysql4.a qsqlmysql4.dll libqsqlmysqld4.a 這四個檔案。
在編譯的時候可能會找不到mysql.h這個檔案,因為在MYSQL裡邊,去找吧,我比較懶直接把全部檔案COPY了一遍,比較正常的做法是COPY需要的就行,更好的就是加個路徑,呵呵。
#include <QApplication>
#include <QtSql\QSqlDatabase>
#include <QtDebug>
#include <QSqlError>
#include <QSqlQuery>
#include <QVariant>
int main(int argc, char* argv[])
{
QApplication a(argc,argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("123456");
if(db.open())
{
qDebug("success");
}
QSqlQuery query;
query.exec("show tables;");
while(query.next())
{
QString str = query.value(0).toString();
qDebug() << str;
}
return 0;
}
*.PRO檔案中加上QT += sql
運作結果:
Starting D:\CPP\QtProgram\linkmysql\main\debug\main.exe...
success
"activemq_acks"
"activemq_lock"
"activemq_msgs"
"ejf_admin_log"
"ejf_archive_reply"
"ejf_archive_topic"
"ejf_attach"
"ejf_backup_task"
"ejf_board"
"ejf_bookmark"
"ejf_censor_log"
"ejf_credits_log"
"ejf_error_log"
"ejf_friend"
"ejf_group"
"ejf_moderator_log"
"ejf_reply"
"ejf_report_log"
"ejf_section"
"ejf_short_msg"
"ejf_topic"
"ejf_trash_box"
"ejf_user"
"ejf_visit_stat"
"test"
本文寫給不懂的同志,懂的同志請輕拍磚