gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:17:27 26 4
gpt4 key购买 nike

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

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

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

  2. 测试了一些数据库功能:

    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][驱动程序管理器]无法打开库“SQL Native Client”:找不到文件 QODBC3:无法连接“

我的问题是:

我从论坛帖子中获取了连接字符串,我认为它是一个很好的起点,但那里到底应该包含什么? “SQL Native Client”从何而来?我需要做什么来设置我的 Qt/Linux 机器才能连接到远程 MS SQL Server?

最佳答案

听起来您需要安装 SQL Server ODBC 驱动程序。

关于如何做到这一点的解释在这里:

此外,您需要使用正确的名称来引用它,即“ODBC Driver 11 for SQL Server”

关于c++ - 从 Qt Linux 应用程序连接到 MS SQLServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32759022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com