天天看點

qt連接配接mysql(windows)

生成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"

本文寫給不懂的同志,懂的同志請輕拍磚

繼續閱讀