#include
#include
#include
#include
bool connectToSqlServer()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
// DSN-less 連接字符串,指定驅動、服務器、數據庫
QString dsn = QString("DRIVER={SQL Server};SERVER=%1;DATABASE=%2;UID=%3;PWD=%4")
.arg("192.168.0.112")
.arg("testDBName")
.arg("sa")
.arg("sa");
db.setDatabaseName(dsn);
if (!db.open()) {
qDebug() << "連接失敗:" << db.lastError().text();
return false;
}
qDebug() << "連接成功";
return true;
}
void queryExample()
{
QSqlQuery query;
QString sql = "SELECT * FROM testTable";
if (!query.exec(sql)) {
qDebug() << "查詢失敗:" << query.lastError().text();
return;
}
while (query.next()) {
QString name = query.value("testName").toString(); // 按列名取值
qDebug() << "Name:" << name;
}
}
{SQL Server} 對應舊版 ODBC 驅動;若用 SQL Server Native Client 10.0/11.0,驅動名為 {SQL Server Native Client 10.0}。QODBC 找不到驅動。query.setForwardOnly(true) 或手動轉碼。控制面板 → 管理工具 → ODBC 數據源 → 系統 DSN → 添加 → 選擇 SQL Server 驅動 → 配置服務器/數據庫/認證。代碼簡化為:
db.setDatabaseName("MySqlServerDSN");
db.setUserName("sa");
db.setPassword("sa");