[英]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.