qt與資料庫連接
㈠ 在qt裡面用release編譯運行正常,能連接到資料庫,但是無法使用資料庫查詢了,這是怎麼回事喃
在生成可執行文件給老闆看設計的時候,遇到了無法保存數據的問題,覺得可能是無法鏈接資料庫,或者缺少什麼內容的問題,在網上查了一些資料,最終測試可順利完成資料庫的鏈接。經檢驗,在window 7 32 or 64下都可以使用。使用的工具是Qt Creator 2.8.0,qt版本4.8.5 資料庫為sqlite 若是使用其他資料庫,可能略有不同。
具體操作步驟如下:
1)在release文件夾里創建plugins文件夾,並將QT安裝目錄下的plugins\sqldrivers文件夾下的libqsqlite4.a qsqlite4.dll(資料庫不同可能一樣) 復制到release\plugins文件夾(如果sqldrivers文件夾中沒有你需要的驅動,可能就需要下載其他的驅動了,方法大致相同)
2)main.cpp中添加以下語句 QApplication::addLibraryPath("./plugins");
3)在構建中選中release 後進行編譯,生成exe文件。
4)新建文件夾,在你安裝qt的目錄中(我的目錄是D:/Qt/4.8.5/bin)查找qtsql4.dll libgcc_s_dw2-1.dll mingwm10.dll QtCore4.dll QtGui4.dll 然後復制到新建的文件夾中
5)將release下的exe文件和sqldrivers文件夾復制到新建的文件夾。
6)運行生成的exe 文件,就可測試功能了。
㈡ 如何用Qt連接資料庫並導入文件
可以使用QT自帶的資料庫完成操作,以下是參考代碼:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加資料庫
db.setDatabaseName("note.db"); //創建一個note.db的文件存儲數據
db.open(); //開啟資料庫
query = QSqlQuery(db); //獲得訪問資料庫的query
query.exec(XXX); //執行畢喊指令(XXX為SQL指令)
db.close(); //關閉資料庫
一般而言會將db變數作為全局變數或者數據成員,當需要訪問的滑液時候就獲取一個query就可以了。
要實現所提到的功能,要好好看看QString、QStringList,這兩玩意主要是臨時存放數據、分割數據等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,這四個主要用來讀取文本數據。看看QVector或者QList等來存放讀出來的數據。
另外,要實現這玩意,SQL的語句不要求精通,但是基本的Create、Insert、Select、Delete等操作要准確無誤。否則出錯了QT是看不出來的手讓野。QT不會檢測SQL的准確性的。