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

3
我将尝试在我的Qt Linux应用程序中使用QODBC连接到远程计算机上的MS SQL服务器。
目前为止,我已经完成了以下步骤:
  1. Added QT += SQL in the .pro file.

  2. Tested some db functions:

    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. I have tried to added a database:

    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. Tried to open the database:

    bool ok = db.open();    
    qDebug() << "OK: " << ok;
    
    if (!ok) {
        qDebug() << "error: " << db.lastError().text();
    }
    

使用db.open()出现以下信息:

"[unixODBC][Driver Manager]无法打开库 'SQL Native Client' : 找不到文件 QODBC3: 无法连接"

我的问题是:

我从论坛帖子中找到了连接字符串,我认为这是一个很好的开始,但是它应该包含什么?“SQL Native Client”来自哪里?我需要怎样设置我的Qt / Linux环境才能连接到远程MS SQL Server?


从Qt安装源目录编译qodbc,并查看此页面以获取连接字符串:http://wiki.qt.io/ODBC - Sebastian Lange
1个回答

4

谢谢,@Ben。有没有办法知道ODBC驱动程序是否已经安装? - Michael Vincent
请看这里:https://technet.microsoft.com/zh-cn/library/hh568449(v=sql.110).aspx 和这里:http://www.unixodbc.org/ - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接