从Qt Linux应用程序连接到MS SQLServer
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);
-
试图打开数据库:
bool ok = db.open(); qDebug() << "OK: " << ok; if (!ok) { qDebug() << "error: " << db.lastError().text(); }
如果我现在列出连接,"MyFirst"在列表中。
db.open()失败,返回以下消息:
"[unixODBC][Driver Manager] cannot open lib 'SQL Native Client': file not found QODBC3: cannot connect"
我的问题是:
我拿起连接字符串从论坛帖子,我认为这是一个很好的地方开始,但究竟应该在那里?"SQL本地客户端"从何而来?我需要做些什么来设置我的Qt/Linux盒子能够连接到远程MS SQL Server?
听起来你需要安装SQL Server ODBC Driver。
如何做到这一点的解释在这里:
- https://technet.microsoft.com/en-us/library/hh568454 (v = sql.110) . aspx
此外,您需要使用正确的名称来引用它,即"ODBC Driver 11 for SQL Server"
相关文章:
- 如何在MS Visual Studio 2019中运行QT UI
- 在C++中调用 MS SQL 存储过程
- MS Visual Studio 解决方案结合了非托管C++项目和 C# 项目
- MS 本机单元测试 - 断言::线程失败不起作用
- 为什么我不能在同一 MS VS 解决方案中的两个控制台应用中使用C++特征(仅标头库)?
- 使用 MS 绕道挂钩在调用钩子函数时崩溃C++
- Windows Toast 通知不适用于 MS CPP 示例代码
- 无法编译 ms _tzSet() 示例
- 从现有源创建 MS Visual C++ DLL 项目
- sf::Windows上的音乐:api-ms-win-crt-locale-l1-1-0.dll:无法打开共享对象文件
- 带有unique_ptr的通用单链表,MS visual studio C++中存在未知错误
- 连接到MS SQL的程序类型超出范围
- cl.exe在哪里?(MS 构建工具 '13)
- Python:在Windows上选择C++编译器 - MS Visual Studio到Mingw-w64.(PySta
- 如何从 avi 文件中抓取所有帧 - 如何修改 MS 样本采集卡样本
- C++不正确,不需要重新声明类成员变量 MFC 手工解决方案/项目 MS VS 2015
- 当索引为 1 时,_BitScanReverse返回 0,这意味着根据 MS "no set bits were found"
- C++ API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL依赖项问题
- 在 Ubuntu 12.04 上运行,一个在 Windows 上的 MS Visual Studio 中用 c++11
- 从Qt Linux应用程序连接到MS SQLServer