繁体   English   中英

从Qt Linux应用程序连接到MS SQLServer

[英]Connecting to MS SQLServer from Qt Linux application

我正在尝试在我的Qt Linux应用程序中使用QODBC连接到远程盒子上的MS SQL Server。

这是我到目前为止所做的:

  1. 在.pro文件中添加了QT + = SQL。

  2. 测试了一些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()在这个阶段是空的,但这两个都有效。

  1. 我试图添加一个数据库:

     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”就在列表中。

  1. 试图打开数据库:

     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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM