Qt Mysql驅動編譯過程

1.首先固然是要有VS2008+Qt4.7的開發環境。mysql

 

2.安裝MySQL,最好是4之後的版本,安裝MySQL時要勾住「C Include Files 和 Lib Files」選項,這樣才能裝上MySQL的頭文件和連接庫。(或者選擇FULL安裝)sql

 

3.因爲MySQL先天的路徑問題(就是它的路徑裏面有空格),咱們須要把它的include和lib目錄複製出來,放在一個沒有空格的目錄下。數據庫

    在C盤創建Mysql5.5文件夾,把include和lib放進去。服務器

 

4. 打開Qt Command Prompt 窗口,輸入命令:app

cd  C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\測試

 

5. 輸入命令:ui

qmake -o "INCLUDEPATH+=C:\Mysql5.5\include" "LIBS+=C:\Mysql5.5\libmysql.lib" mysql.pro編碼

        這裏面的路徑就是第3步裏面建立的目錄debug

 

6.輸入命令: nmake release debugcode

      到這裏,其實MySQL的驅動已經編譯完了,可是可能編譯出來的動態連接庫沒有自動拷貝到C:\Qt\4.7.4\plugins\sqldrivers 中去。不要緊,咱們手動拷貝以下:

【拷貝1】將編譯生成的mysql驅動

   C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\release和

   C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\release\debug   裏面把qsqlmysql4.dll、qsqlmysql4.lib、qsqlmysqld4.dll、qsqlmysqld4.lib拷到 c:\Qt\4.7.4\plugins\sqldrivers 裏面就好了。

【拷貝2】將libmysql.dll拷貝到C:\Qt\4.7.4\bin。

 

下面能夠進行Qt數據庫的測試例子了:

int main(int argc, char *argv[])

{

   

    QApplication app(argc, argv);

    qt_mysql w;

    QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //設置tr()編碼。

     QSqlQueryModel *model;

     QTableView *table=new QTableView;

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

    db.setHostName("10.3.2.84");   //數據庫服務器

     db.setDatabaseName("petct");   //數據庫名

     db.setUserName("admin");      //登陸名

     db.setPassword("admin");    //密碼

    if(db.open())

     {

          QSqlQuery query;

         query.exec("update patient_basic_info set sex ='m 'where patient_id = 3");

         query.exec("DELETE FROM patient_basic_info where patient_id = 3");

          query.exec("SELECT patient_id , patient_name,ID_card_no,sex FROM patient_basic_info");//name爲屬性名;

        query.next();

        QString name = query.value(1).toString();                                                                                 w.ui.patient_name_text->setText(name);

         model=new QSqlQueryModel;

         model->setQuery(query);

         table->setModel(model);

      }

      else

      {

        // 數據庫打開失敗,顯示數據庫返回的失敗信息

        QMessageBox::critical(0,QObject::tr("數據庫打開失敗"),db.lastError().text());

       }

    w.show();

     QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));

     return app.exec();

}

 

 

附件使用,

一、將libmysql.dll拷貝到C:\Qt\4.7.4\bin 這樣Qt驅動能夠調用mysql,打開數據庫

二、將qsqlmysql4.dll、qsqlmysql4.lib、qsqlmysqld4.dll、qsqlmysqld4.lib拷貝到C:\Qt\4.7.4\plugins\sqldrivers 這就是Qt mysql的驅動

相關文章
相關標籤/搜索