2015-09-24 80 views
3

我想在我的Qt Linux應用程序中使用QODBC在遠程盒子上連接到MS SQL Server。從Qt Linux應用程序連接到MS SQLServer

這是我迄今所做的:

  1. 增加QT + =在.pro文件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()是在這個階段空。

  • 我試圖加入一個數據庫:

    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」 是在列表中。

  • 試圖打開數據庫:

    bool ok = db.open();  
    qDebug() << "OK: " << ok; 
    
    if (!ok) { 
        qDebug() << "error: " << db.lastError().text(); 
    } 
    
  • 的db.open()失敗,消息如下:

    「[的unixODBC] [驅動程序管理器]無法打開lib'SQL Native Client':文件未找到QODBC3:無法連接「

    我的問題是:

    我拿起論壇帖子中的連接字符串,我覺得它是一個很好的開始任何地方,但究竟應該在那裏? 「SQL NAtive客戶端」來自哪裏?我需要做什麼來設置我的Qt/Linux盒子才能連接到遠程MS SQL Server?

    +0

    從Qt安裝的源碼目錄中編譯qodbc並查看該頁面的連接字符串:http://wiki.qt.io/ODBC –

    回答

    3

    聽起來像您需要安裝SQL Server ODBC驅動程序。

    如何做到這一點的解釋是在這裏:

    另外你需要正確的名稱,這是「ODBC驅動程序11爲SQL Server」來稱呼它

    +0

    謝謝,@Ben。有沒有辦法知道ODBC驅動程序是否已經安裝? –

    +0

    看看這裏:https://technet.microsoft.com/en-us/library/hh568449(v=sql.110).aspx和這裏:http://www.unixodbc.org/ – Ben

    相關問題