[英]Connecting to MS SQLServer from Qt Linux application
我正在嘗試在我的Qt Linux應用程序中使用QODBC連接到遠程盒子上的MS SQL Server。
這是我到目前為止所做的:
在.pro文件中添加了QT + = SQL。
測試了一些db函數:
QStringList drivers = QSqlDatabase::drivers(); qDebug() << "Drivers: " ; foreach(QString driver, drivers) { qDebug() << ":: " << driver; } qDebug() << "Connection Names: "; QStringList connames = QSqlDatabase::connectionNames(); foreach(QString conname, connames) { qDebug() << ":: " << conname; } qDebug() << "---";
雖然connectionNames()
在這個階段是空的,但這兩個都有效。
我試圖添加一個數據庫:
QString serverName = "server1"; QString dbName = "abc123"; QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "MyFirst"); db.setHostName(serverName); QString myCon = QString("DRIVER={SQL Native Client};SERVER=%1;DATABASE=%2;Trusted_Connection = Yes").arg(serverName).arg(dbName); db.setDatabaseName(myCon);
如果我現在列出連接,“MyFirst”就在列表中。
試圖打開數據庫:
bool ok = db.open(); qDebug() << "OK: " << ok; if (!ok) { qDebug() << "error: " << db.lastError().text(); }
db.open()失敗,並顯示以下消息:
“[unixODBC] [驅動程序管理器]無法打開lib'SQL Native Client':找不到文件QODBC3:無法連接”
我的問題是:
我從一個論壇帖子里拿起了連接字符串,我認為這是一個很好的起點,但是到底應該是什么? “SQL NAtive Client”來自哪里? 如何設置我的Qt / Linux盒以便能夠連接到遠程MS SQL Server,我需要做什么?
聽起來你需要安裝SQL Server ODBC驅動程序。
有關如何執行此操作的說明如下:
此外,您需要使用正確的名稱來引用它,即“SQL Server的ODBC驅動程序11”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.