Qt5.6.1编译并连接Oracle11gR2

网上的资料比较散,而且其实Oracle是不需要把服务端下载下来的,所以整理一下

 

环境:

客户机:windows10 + Qt5.6.1 32bit

服务器:OEL 5.3 32bit + Oracle11gR2 32bit

 

目标组件:

windows10中Oracle组件:oci.dll

Qt中Oracle组件:qsqloci.dll 和 qsqlocid.dll

 

说明

windows10中Oracle组件,oci.dll包含在Oracle的instantclient-basic中,直接在Oracle官网可下载到。

Qt中Oracle组件,qsqloci.dll 和 qsqlocid.dll需要通过Qt给的源码Oracle给的instantclient-sdk,一起编译生成。前者在Qt软件安装时需要选择Src才会有,后者也是直接在Oracle官网直接下载(当然,完整下载整个Oracle11g服务端的windows版也可以获得)。

 

准备材料

Qt软件下载地址:http://download.qt.io/official_releases/qt/

我的是:qt-opensource-windows-x86-mingw492-5.6.1-1.exe

Oracle组件下载地址:https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html

我的是:instantclient-basic-nt-11.2.0.4.0.zip 和 instantclient-sdk-nt-11.2.0.4.0.zip

 

先把Qt装好,安装时记得选择Src。

我的装在:E:\Qt\Qt5.6.1\

解压Oracle的Client组件和SDK。

我的解压在:E:\Oracle\x86_instantclient_11_2\ 和 E:\Oracle\x86_instantclient_11_2\sdk\

 

---------------------------------------------------------------------------------------------------------------------

编译Qt的Oracle组件

配置源码

使用Qt Creator配置Qt中的Oracle组件源码:

源码位置:E:\Qt\Qt5.6.1\5.6\Src\qtbase\src\plugins\sqldrivers\oci\

直接打开目录中的oci.pro

在Qt Creator中 为oci.pro 添加windows10中Oracle的 SDK 的 inlclude 和 lib 位置。

我的在:E:\Oracle\x86_instantclient_11_2\sdk\include 和 E:\Oracle\x86_instantclient_11_2\sdk\lib\msvc

所以我的oci.pro文件内容如下:

TARGET = qsqloci

SOURCES = main.cpp
OTHER_FILES += oci.json
include(../../../sql/drivers/oci/qsql_oci.pri)

PLUGIN_CLASS_NAME = QOCIDriverPlugin
include(../qsqldriverbase.pri)

INCLUDEPATH += E:\Oracle\x86_instantclient_11_2\sdk\include
LIBPATH += E:\Oracle\x86_instantclient_11_2\sdk\lib\msvc

然后保存,并关闭Qt Creator。

 

编译源码

使用Qt命令行工具编译Qt的Oracle组件:

打开Qt命令行工具,如下图

进入源码目录:cd E:\Qt\Qt5.6.1\5.6\Src\qtbase\src\plugins\sqldrivers\oci\

执行:qmake -makefile oci.pro

执行:mingw32-make

编译完成,qsqloci.dll 和 qsqlocid.dll 在 E:\Qt\Qt5.6.1\5.6\Src\qtbase\plugins\sqldrivers目录下。

将这两个dll拷贝至 E:\Qt\Qt5.6.1\5.6\mingw49_32\plugins\sqldrivers,使Qt可以直接调用。

 

---------------------------------------------------------------------------------------------------------------------

测试

使用Qt调用编译好的Oracle组件连接OEL服务器。

两个文件,connectOracle.pro 和 mian.cpp

connectOracle.pro 代码:

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

SOURCES += \
    main.cpp


QT += sql

mian.cpp 代码:

#include <QWidget>
#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QString>
#include <QDebug>
#include <QLibrary>
#include <QSqlError>

int main(int argc, char *argv[])
{
    // 手动导入windows10中的oracle客户端的dll,也可以配置环境变量,由于我有多个版本的oracle客户端组件,这里就手动导入了
    QLibrary * oracleLib = new QLibrary("E:\\Oracle\\x86_instantclient_11_2\\oci.dll");
    oracleLib->load();

    // 使用编译好的Oracle组件,连接Oracle数据库
    QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
    db.setPort(1521);
    db.setHostName("Oracle服务器地址");
    db.setDatabaseName("数据库名");
    db.setUserName("用户名");
    db.setPassword("密码");

    if (!db.open()) {
        qDebug() << "ERROR";
        // 输出打开数据库失败原因
        qDebug() << db.lastError();
        return 0;
    }

    QSqlQuery query(db);
    // 执行sql语句,我的数据库中中有个表site(id int, name nvarchar2(20), address nvarchar2(50))
    query.exec("select * from site");
    // 打印得到的语句
    while (query.next()){
        qDebug() << query.value(0).toInt() << query.value(1).toString() << query.value(2).toString();
    }

    // 使用QString创建sql语句,插入数据
    QString sql = "insert into site(id, name, address) values(60, '分公司', '')";
    query.exec(sql);

    // 提交数据
    query.exec("commit");

    db.close();



    QApplication a(argc, argv);
    QWidget w;
    w.resize(300,200);
    w.show();
    return a.exec();
}

 

 

 

 

备注:最好配置一下系统环境变量NLS_LANG,我试了TNS_ADMIN可以不配置。

NLS_LANG先查询OEL中的值

然后再windows10系统环境变量中配置NLS_LANG

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 5.6.1是一个跨平台的应用程序开发框架,可以帮助开发人员轻松创建图形化界面和跨平台应用程序。安装Qt 5.6.1需要以下步骤: 1. 下载安装包:在Qt官方网站上找到适用于你操作系统的Qt 5.6.1安装包,并下载到本地。 2. 运行安装程序:找到下载的安装包文件,双击运行安装程序。根据提示选择安装路径和组件。 3. 安装依赖项:根据你的操作系统,在安装过程中可能需要安装一些依赖项。安装程序会自动检测并提示你是否安装缺少的依赖项。 4. 设置环境变量:安装完成后,为了在命令行中能够使用Qt命令行工具,需要将Qt的安装目录添加到系统的环境变量中。 5. 启动Qt Creator:安装完成后,你可以启动Qt Creator,这是一个集成开发环境(IDE),它可以帮助你开发和调试Qt应用程序。 6. 创建项目:在Qt Creator中,你可以选择新建一个项目,选择你想要的项目模板和目标平台,然后按照向导完成项目的创建。 7. 编写代码:使用Qt Creator的编辑器,你可以开始编写Qt应用程序的代码。从创建用户界面到处理逻辑,Qt提供了丰富的库和功能。 8. 调试和构建:在Qt Creator中,你可以使用调试器来调试你的应用程序,并使用构建工具来生成可执行文件或者库文件。 通过这些步骤,你可以成功安装并开始使用Qt 5.6.1来开发你自己的应用程序。记得在需要的时候查看Qt的文档和示例代码,以便更好地理解和使用Qt的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值