若該文為原創文章,未經允許不得轉載
各位讀者,知識無窮而人力有窮,要麼改需求,要麼找專業人士,要麼自己研究
紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點選傳送門)
Qt開發專欄:實用技巧(點選傳送門)
需求
指定使用sql server資料庫,qt連接配接sql server進行查詢操作。
原理
qt使用odbc驅動連接配接sql server資料庫。
配置ODBC以及測試資料源
第一步:控制台搜尋ODBC資料源

第二步:添加odbc,已有則不添加,點選配置
第三部:配置ODBC向導
第四步:擷取伺服器名稱
第五步:使用配置的sa帳号登入
第六步:配置ODBC伺服器的資料庫
第七步:配置完成
第八步:配置成功
第九步:點選“測試資料源“,測試成功表示資料庫連接配接沒有問題
關鍵代碼
啟動時連接配接資料庫
void MainWindow::init()
{
_sqlServer.setDataBasetName("localhost", "dictionary", "sa", "123456");
if(!_sqlServer.connectToSqlServer())
{
QMessageBox::warning(this, QString::fromLocal8Bit("錯誤"), QString::fromLocal8Bit("資料庫連接配接錯誤,詞典将無法正常使用!!!"));
}
}
void SqlServer::setDataBasetName(QString server, QString database, QString uid, QString pwd)
{
_server = server;
_database = database;
_uid = uid;
_pwd = pwd;
}
bool SqlServer::connectToSqlServer()
{
#if 0
// 方法一:嘗試成功
_db = QSqlDatabase::addDatabase("QODBC");
_db.setHostName(_server);
_db.setDatabaseName(_database);
_db.setUserName(_uid);
_db.setPassword(_pwd);
#else
// 方法二:嘗試成功:注意對于express版本的資料庫,SERVER字段後面一定要加\\sqlexpress,否則連接配接不上
_db = QSqlDatabase::addDatabase("QODBC");
QString strConnect = QString("Driver={SQL Server};"
"SERVER=%1\\sqlexpress;"
"DATABASE=%2;"
"UID=%3;"
"PWD=%4;")
.arg(_server)
.arg(_database)
.arg(_uid)
.arg(_pwd);
_db.setDatabaseName(strConnect);
#endif
if(!_db.open())
{
emit error(_db.lastError().databaseText());
return false;
}else{
emit connctedToSqlServer();
return true;
}
}