我将尝试在我的Qt Linux应用程序中使用QODBC连接到远程计算机上的MS SQL服务器。
目前为止,我已经完成了以下步骤:
目前为止,我已经完成了以下步骤:
Added QT += SQL in the .pro file.
Tested some db functions:
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()
为空。
I have tried to added a database:
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);
Tried to open the database:
bool ok = db.open(); qDebug() << "OK: " << ok; if (!ok) { qDebug() << "error: " << db.lastError().text(); }
使用db.open()出现以下信息:
"[unixODBC][Driver Manager]无法打开库 'SQL Native Client' : 找不到文件 QODBC3: 无法连接"
我的问题是:
我从论坛帖子中找到了连接字符串,我认为这是一个很好的开始,但是它应该包含什么?“SQL Native Client”来自哪里?我需要怎样设置我的Qt / Linux环境才能连接到远程MS SQL Server?