【问题标题】:Unable to connect to MS SQL DB server无法连接到 MS SQL DB 服务器
【发布时间】:2014-06-19 05:33:31
【问题描述】:

我正在 Ubuntu 13.10 上开发 Qt-5.0.2。我已经构建了 QODBC 插件,但无法访问数据库服务器。这是我的代码

#include <QCoreApplication>
#include <QtSql>
#include <QtDebug>
#include <QSqlError>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setConnectOptions();

    QString dsn = QString("DRIVER={PATH};SERVER=win-l54oh3ekuur;DATABASE=LALCPlanner;UID=webdev;PWD=password;");


    db.setDatabaseName(dsn);

    if(db.open())
    {
        qDebug() << "Opened";

        QSqlQuery qry;
        if(qry.exec("select * from [TestStatus]"))
        {
            while(qry.next())
           {
                qDebug() << qry.value(0).toString();
                qDebug() << qry.value(1).toString();
           }
        }

        else
            qDebug() << "ERROR =" << db.lastError().text();

        qDebug() << "Closing!";
        db.close();
    }

    else
    {
        qDebug() << "ERROR =" << db.lastError().text();
    }

    return a.exec();
}

这里的{PATH}是我在.bashrc文件“/usr/lib/i386-linux-gnu/qt5/plugins/sqldrivers”中导出的路径

当我运行项目时,错误是:

ERROR = "[unixODBC][Driver Manager]Data source name not found, and no default driver specified QODBC3: Unable to connect" 

顺便说一句,代码在 Windows 上运行良好。

【问题讨论】:

    标签: linux qt ubuntu odbc


    【解决方案1】:

    该代码可能适用于 Windows,因为您实际上有一个驱动程序,命名为您放入 DRIVER={} 中的任何内容。您不能只在 DRIVER 中传递一个目录,它必须是在您的 odbcinst.ini 文件中定义的驱动程序的名称或驱动程序共享对象的完整路径。

    您没有提到您在 Ubuntu 机器上安装了哪些 ODBC 驱动程序,但我只知道 2 个可以读取 MS Access 文件的 Ubuntu 驱动程序,这些是 Easysoft 和 MDB 工具(并且有负载这个问题)。这些都不支持在远程机器上神奇地打开 MS Access DB(由您的 SERVER=xxx 暗示),尽管 Easysoft 将从共享中读取 MDB(共享可以是任何一种方式)。

    【讨论】:

    • 你能告诉我在 DRIVER 部分填写什么,因为我的 odbcinst 文件是空的。它的 MS SQL Server 也不能访问。我正在使用 unixODBC。
    • 您已更改问题 - 我回答时“无法连接到 MS Access DB 服务器”。
    • 没有人能告诉你应该在 odbcinst.ini 文件中放什么,除非你能说出你正在使用什么 ODBC 驱动程序以及你安装它的方式/位置。
    • 是的,我之前弄错了数据库服务器。我正在使用 unixODBC 并将其安装在 /usr/local
    • 你需要做什么来确定你将使用什么 ODBC 驱动程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2023-03-11
    • 2018-05-29
    相关资源
    最近更新 更多