Qt 連接 MySQL并編譯驅動
Qt 連接 MySQL并編譯驅動是本文呢要介紹的內容,Qt開發環境并可正常使用(假設用的是VS2008+ QtVisualStudioIntegrationv1.43for.VS.2003.2005)一切操作均在windows下進行。
1、安裝MySQL
下載MySQL安裝程序,安裝時選擇Custom方式,選擇安裝目錄,目錄***不要有空格,不要有中文,選擇安裝include和lib文件。其它的就沒什么了。Sqlyog是一個MySQL的圖形界面管理工具,可以安裝上,方便數據庫操作。
2、將安裝好的MySQL目錄下的include文件夾里的文件(頭文件)復制到編譯工具的include文件夾下,再將MySQL目錄下的lib\opt里的文件復制到編譯工具的lib文件夾下,簡而言之就是要讓編譯器能找到MySQL里相應的文件。(該路徑也可在生成工程文件時添加給qmake)比如:
- ..\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=D:\MySQL\include" "LIBS+=D:\MySQL\lib\opt\libmysql.lib"
3、打開VS2008 命令提示符,將目錄切換到Qt\src\plugins\sqldrivers\mysql\,運行qmake
完了在運行nmake。不出錯的話MySQL的驅動就編好了。用如下代碼進行驅動測試:(這段程序編譯完之后不是運行,是調試,不然測試信息出不來)
- #include <QSqlDatabase>
- #include <QSqlQuery>
- #include <QSqlError>
- #include <QApplication>
- #include <QSqlDatabase>
- #include <QStringList>
- #include <QMessageBox>
- #include <QDebug>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- qDebug() << "Available drivers:";
- QStringList drivers = QSqlDatabase::drivers();
- foreach(QString driver, drivers)
- qDebug() << "\t" << driver;
- QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
- qDebug() << "MYSQL driver valid?" << db.isValid();
- }
測試結果如下圖:
4、MySQL里創建庫,創建庫時數據庫字符集選擇gbk編碼,創建數據庫名為test,單表,表名為testTable,表內屬性為name varchar ;(方便理解代碼)
5、用如下代碼測試連接數據庫并測試寫入、讀出數據是否成功,并測試數據是否亂碼。
- #include <QtGui>
- #include <QtSql>
- #include <QTableView>
- #include <QString>
- #include <QObject>
- int main(int argc, char **argv)
- {
- QApplication app(argc, argv);
- QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //設置tr()編碼。
- QSqlQueryModel *model;
- QTableView *table=new QTableView;
- QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
- db.setHostName("localhost"); //數據庫服務器
- db.setDatabaseName("test"); //數據庫名
- db.setUserName("root"); //登錄名
- db.setPassword("123456"); //密碼
- if(db.open())
- {
- QMessageBox::information(0,QObject::tr("信息"),
- QObject::tr("數據庫連接成功"));
- QSqlQuery query;
- query.exec(QObject::tr("INSERT INTO bbb VALUES ('柯南')"));
- query.exec("SELECT name FROM testTable");//name為屬性名;
- //testTable為表名
- model=new QSqlQueryModel;
- model->setQuery(query);
- model->setHeaderData(0, Qt::Horizontal, QObject::tr("姓名"));
- table->setModel(model);
- table->show();
- }
- else
- {
- // 數據庫打開失敗,顯示數據庫返回的失敗信息
- QMessageBox::critical(0,QObject::tr("出錯"),db.lastError().text());
- }
- QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));
- return app.exec();
- }
運行結果如下圖:
小結:關于Qt 連接 MySQL并編譯驅動的內容介紹的完了,希望本文呢對你有所幫助!更多內容請參考編輯推薦。