编程技术分享平台

网站首页 > 技术教程 正文

Qt Linux下连接SQL Server数据库(qt怎么连接oracle数据库)

xnh888 2024-10-18 14:48:45 技术教程 84 ℃ 0 评论

安装unixODBC

  1. 下载unixODBC源码,我这里下载的版本是:unixODBC-2.3.9.tar.gz
  2. 执行以下命令进行编译和安装
  • cd /home/levy/unixODBC-2.3.9
  • ./configure --prefix=/usr/local/unixODBC
  • sudo make
  • sudo make install

编译libqsqlodbc.so(已生成的可不操作)

  1. 下载QT对应版本的源码并解压,源码可以到清华大学镜像站下载,速度比官网快很多(安装Qt Creator 时已安装源码的,则忽略这一步)
  2. qt编译odbc动态库源程序
  • cd /home/levy/qt-everywhere-opensource-src-5.9.6/qtbase/src/plugins/sqldrivers
  • cp configure.pri qtsqldrivers-config.pri
  • cd odbc
  • 注释掉odbc.pro文件中的指定行,如:#QMAKE_USE += odbc
  • ./home/levy/Qt5.9.6/5.9.6/gcc_64/bin/qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
  • sudo make
  • 将生成后的文件(/home/levy/qt-everywhere-opensource-src-5.9.6/qtbase/src/plugins/sqldrivers/plugins/sqldrivers)拷贝到qt对应的路径下(我这里是/home/levy/Qt5.9.6/5.9.6/gcc_64/plugins/sqldrivers)

安装freetds

依次执行以下命令

  • cd /home/levy/freetds-1.1.26
  • ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --enable-msdblib --enable-krb5
  • sudo make
  • sudo make install

配置unixODBC

设置ODBC使用的驱动程序,依次执行以下步骤

  • cd /usr/local/unixODBC/etc
  • sudo vi odbcinst.ini
  • 在odbcinst.ini中添加如下配置:
[FreeTDS]
Description=FreeTDS driver
Driver=/usr/local/freetds/lib/libtdsodbc.so

QT连接Sql Server

代码中我们需要设置DRIVER为FreeTDS,同时可以设置Sql Server包含实例名的地址,但是需要注意的是非默认实例的端口号往往已不是默认的1433了,这里需要注意设置正确的端口号,否则连接会有问题。

//代码示例---by洋小豆
QSqlDatabase levyDb = QSqlDatabase::addDatabase("QODBC");
levyDb.setDatabaseName(QString("DRIVER={FreeTDS};"
                                "SERVER=%1;"
                                "DATABASE=%2;"
                                "UID=%3;"
                                "PWD=%4;"
                                "PORT=%5")
                        .arg("192.168.10.96\\sql2014")
                        .arg("ERP_Levy")
                        .arg("sa")
                        .arg("1")
                        .arg("3121"));
    if (!levyDb.open())
    {
        qDebug() << qDb.lastError();
    }
    else
    {
        qDebug() << "Connect success!";
    }


#Linux##Qt##Ubuntu##sql##c#

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表