本文目錄一覽:
- 1、qt連接mysql資料庫怎麼編譯驅動
- 2、QT訪問MYSQL資料庫為什麼一打開子窗口訪問資料庫就出問題?
- 3、Qt5.7下連接mysql資料庫
- 4、QT訪問MYSQL資料庫為什麼一打開子窗口訪問資料庫就出問題
- 5、Qt mysql, 程序運行時打開資料庫不成功
- 6、qt中mysql怎麼連接遠程資料庫
qt連接mysql資料庫怎麼編譯驅動
下載mysql C鏈接庫
選擇C的鏈接庫
2
將C的連接庫解壓到到C:/mysql 目錄下
3
我的QT 安裝在C盤目錄下,版本號是4.8.6 所以打開目錄
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
4
將C:/mysql/lib/libmysql.dll 和C:/mysql/lib/libmysql.lib
複製到此處。
5
編輯目錄下的mysql.pro文件
添加
INCLUDEPATH+=”C:/mysql/include”
LIBS+=”C:/mysql/lib/opt/libmysql.lib”
運行qt的控制台窗口,方便使用qmake
切換到目錄下
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
執行qmake
運行VS2010的控制台工具
切換到
C:\QT\4.8.6\src\plugins\sqldrivers\mysql 目錄下
執行nmake 和nmake release
是nmake不是make
這樣在C:\QT\4.8.6\src\plugins\sqldrivers\mysql 目錄下的debug 目錄和release 目錄下分別會產生
qsqlmysqld4.dll qsqlmysqld4.lib
qsqlmysql4.dll qsqlmysql4.lib
將上面提到的四個文件複製到
C:\QT\4.8.6\plugins\sqldrivers
最後把
C:\mysql\lib\opt\libmysql.dll
C:\mysql\lib\opt\libmysql.lib
複製到
C:\Windows\system32\ 目錄下。
最後測試mysql 可不可以在qt中正常使用
新建一個qt 控制台項目
輸入以下代碼
#include QCoreApplication
#include QDebug
#include qstring.h
#include qstringlist.h
#include qsql.h
#include qsqldatabase.hint main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() “Available drivers:”;
QStringList drivers = QSqlDatabase::drivers();qDebug() drivers;return a.exec();
}
運行測試一下,看看有沒有圖片中紅圈圈中的兩項內容
QT訪問MYSQL資料庫為什麼一打開子窗口訪問資料庫就出問題?
40℃。
蘋果手機安全使用範圍:
1、盡量在0攝氏度至35攝氏度之間的環境溫度內使用iPhone。
2、低溫或高溫環境可能會暫時縮短電池壽命或導致設備暫時停止正常工作。
3、冬天盡量避免在室外長時間使用iPhone。
4、夏天在長時間使用iPhone時,盡量不要加裝保護殼,讓iPhone儘可能的散熱。
Qt5.7下連接mysql資料庫
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
這裡需要把libmysql.dll文件拷貝到Qt的bin目錄中。或者自己編譯的時候,鏈接靜態庫。
參考:
參考:
QT訪問MYSQL資料庫為什麼一打開子窗口訪問資料庫就出問題
意思是說,還有某查詢引用默認資料庫連接”qt_sql_default_connection”。
如果忽略該警告,Qt官方文檔里也寫了,可能會出現內存泄漏:
Warning: There should be no open queries on the database connection when this function is called,
otherwise a resource leak will occur.
還是不出現這個警告的好。怎麼把它弄沒了呢?我把一切外圍的對象都排除了:僅建立一個連接,打開它,然後關閉連接,調用removeDatabase()。居然還有警告!問題已經鎖定在我關閉連接的語句上:
QSqlDatabase::removeDatabase(QSqlDatabase::database().connectionName());
默認連接的名字也是默認的,需要通過connectionName()函數獲得。這樣寫貌似沒什麼問題,後來調試發現,QSqlDatabase::database()靜態函數實際上使默認連接的引用計數+1。上述句子相當於:
QSqlDatabase db = QSqlDatabase::database();//獲得實例。
QString name = db.connectionName();//獲得默認連接名。
QSqlDatabase::removeDatabase(name);//刪除默認連接。
這樣,問題就清晰了,db獲得了一個引用,此時引用計數為2。在調用removeDatabase()時,db對象並沒有被刪除,默認連接的引用計數仍為2,於是報告警告信息。
我們只需將其改為:
QString name;
{
name = QSqlDatabase::database().connectionName();
}//超出作用域,隱含對象QSqlDatabase::database()被刪除。
QSqlDatabase::removeDatabase(name);
問題就解決了!
如果直接打默認連接名的話,代碼就簡單多了,不過名字不太好打(再說了,萬一Qt把默認連接名改了呢!):
QSqlDatabase::removeDatabase(“qt_sql_default_connection”);//不推薦。
Qt mysql, 程序運行時打開資料庫不成功
你機器上有mysql的驅動嗎?如果你用windows平台,編譯器不帶mysql驅動的,要你自己編譯。
qt中mysql怎麼連接遠程資料庫
創建資料庫
選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,並使用Windows或 SQL Server身份驗證建立連接。
在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點
右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。
執行上述操作後,會彈出【新建資料庫】對話框。在對話框、左側有3個選項,分別是【常規】、【選項】和【文件組】。完成這三個選項中的設置會後,就完成了資料庫的創建工作,
在【資料庫名稱】文本框中輸入要新建資料庫的名稱。例如,這裡以「新建的資料庫」。
在【所有者】文本框中輸入新建資料庫的所有者,如sa。根據資料庫的使用情況,選擇啟用或者禁用【使用全文索引】複選框。
在【資料庫文件】列表中包括兩行,一行是資料庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除資料庫文件。
切換到【選項頁】、在這裡可以設置資料庫的排序規則、恢復模式、兼容級別和其他屬性。
切換到【文件組】頁,在這裡可以添加或刪除文件組。
完成以上操作後,單擊【確定】按鈕關閉【新建資料庫】對話框。至此「新建的數據」資料庫創建成功。新建的資料庫可以再【對象資源管理器】窗口看到。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/305065.html