QT 之 ODBC連接人大金倉數據庫


QT 之 使用 ODBC 驅動連接人大金倉數據庫

獲取數據庫驅動和依賴動態庫

  • 此操作可在人大金倉官網下載與系統匹配的接口動態庫,或者從架構數據庫的源碼中獲取驅動和依賴動態庫
  • 分別為:
驅動動態庫:kdbodbcw.so
依賴動態庫:libkci.so.5

安裝 odbcinst 軟件

sudo apt install odbcinst -y
  • 配置驅動文件 /etc/odbcinst.ini 如下:
[KingbaseES]
Description                     = KingbaseES Driver
Driver                          = /opt/KingbaseES/kdbodbcw.so
Setup                           = /opt/KingbaseES/libkci.so.5
Debug                           = 0
CommLog                         = 1

使用QT進行連接數據庫,代碼如下:

#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtCore/QDebug>

int main(void)
{
        QString driver          = "KingbaseES";   // 此名稱和 odbcinst.ini 中的名稱相同【KingbaseES】
        QString server          = "IP Address"; 
        QString database        = "TEST";
        QString username        = "***";  // 用戶名
        QString password        = "***";  // 密碼
        QString dsn = QString("Driver={%1};Server=%2;Database=%3;Uid=%4;Password=%5;Port=%6")\
                                  .arg(driver)\
                                  .arg(server)\
                                  .arg(database)\
                                  .arg(username)\
                                  .arg(password)\
                                  .arg(54321);

       /*
       QString dsn = QString("Driver={%1};Server=%2;Database=%3;Uid=%4;Password=%5;Port=%6")\
                                  .arg(driver)\
                                  .arg(server)\
                                  .arg(database)\
                                  .arg(54321);
      */

        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
        db.setDatabaseName(dsn);
        // db.setUserName(username);
        // db.setPassword(password);

        if (db.open())
                qDebug() << "connect successful";
        else
                qDebug() << db.lastError().text();

        return 0;
}
  • 運行結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM