我试图在我的Qt Linux应用程序中使用QODBC连接到远程盒子上的MS SQL Server。
这是我到目前为止所做的事情:
在.pro文件中添加了QT + = SQL。
测试了一些数据库函数:
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);
如果我现在列出连接,&#34; MyFirst&#34;在列表中。
试图打开数据库:
bool ok = db.open();
qDebug() << "OK: " << ok;
if (!ok) {
qDebug() << "error: " << db.lastError().text();
}
db.open()失败,显示以下消息:
&#34; [unixODBC] [Driver Manager]无法打开lib&#39; SQL Native Client&#39; :找不到文件QODBC3:无法连接&#34;
我的问题是:
我从一个论坛帖子里拿起了连接字符串,我认为这是一个很好的起点,但是到底应该是什么? &#34; SQL NAtive Client&#34;来自?设置我的Qt / Linux盒能够连接到远程MS SQL Server需要做什么?
答案 0 :(得分:3)
听起来您需要安装SQL Server ODBC驱动程序。
有关如何执行此操作的说明,请访问:
此外,您需要使用正确的名称来引用它,即“SQL Server的ODBC驱动程序11”