一:代碼
voidMainDialog::connectMySQL(QString sIp,intiPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QMYSQL");// 使用mysql資料庫驅動
db.setHostName(sIp); // IP位址
db.setPort(iPort); // 端口号
db.setDatabaseName(sDbNm); // 資料庫名稱
db.setUserName(sUserNm); // 使用者名
db.setPassword(sPwd); // 密碼
boolok = db.open();// 嘗試連接配接資料庫
if(ok)
{
qDebug() <
}
else// 打開資料庫失敗
{
QMessageBox::information(this, tr("提示"), tr("MySql資料庫連接配接失敗!"), tr("确定"));
qDebug() <
}
}
二:連接配接過程遇到的問題。
問題1:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase:available drivers: QSQLITE QODBC3 QODBC
(1)出錯原因:本連接配接是通過QMYSQL驅動,而Qt本身并沒有QMYSQL驅動(隻有QSQLITE QODBC3 QODBC),
是以就需要自己編譯QMYSQL。
(2)編譯QMYSQL驅動。
1.安裝mysql時要選上安裝include和lib。mysql安裝的時候預設的安裝路徑中有空格,我們得先把它的include和lib目錄拷貝到沒有空格的路徑下,比如D:\work\MySQL下。
2.cd C:\Qt\2010.04\qt\src\plugins\sqldrivers\mysql
3.C:\Qt\2010.04\qt\bin\qmake-o Makefile "INCLUDEPATH+=D:\MySQL\include""LIBS+=D:\MySQL\lib\opt\libmysql.lib" mysql.pro
4.将C:\Qt\2010.04\mingw\bin加為環境變量path中
5.mingw32-make(此過程會在Qt\2010.04\qt\plugins\sqldrivers下生成libqsqlmysql4.a、libqsqlmysqld4.a、qsqlmysql4.dll、qsqlmysqld4.dll檔案)
6.把libmySQL.dll拷貝到exe檔案同目錄下
問題2:
cannot open database.
Reason: Access denied for user 'qt_test'@'localhost' (usingpassword: YES)
(1)出錯原因:使用者名或密碼錯誤
三:遠端連接配接
(1)建一個sqldrivers檔案夾,将qsqlmysql4.dll放進去。
(2)到工程的exe檔案同目錄下,把sqldrivers檔案夾和libmySQL.dll放進去。
(3)将整個程式發到用戶端。
OK!