数据库
首页 > 数据库> > Qt5.12.10编译Oracle数据库驱动并连接数据库步骤

Qt5.12.10编译Oracle数据库驱动并连接数据库步骤

作者:互联网

最近也是需要用到Oracle数据库的连接,在网上也找了各大神的帖子,可能是跟我的数据库版本或配置有关,有些细节问题的修改,记录一下。                                                         

Qt版本: Qt5.12.10,Oracle版本: 10.2.0.1.0,操作系统: WIN10 64位专业版                                                         

step1:

安装Oracle数据库客户端,主要是为了使用OCI的头文件和库文件,我安装的目录为:F:\oracle\product\10.2.0\db_1\OCI,该目录下有include和lib两个文件夹,正是编译oci驱动需要的(为了使用方便我将该目录拷到了D盘根目录D:\OCI)。

step2:

安装Qt,Qt在安装的时候可以选择多个编译器套件,我选了msvc2017和msvc2017_64两种,另外还需要选择Source(源码)。

step3:

打开QtCreator,打开D:\Qt\5.12.10\Src\qtbase\src\plugins\sqldrivers\oci项目(我是装在D盘),修改oci.pro文件:

我用的msvc2017编译,修改文件:

QMAKE_USE += oci 改为 QMAKE_LFLAGS +=oci.lib

增加:

INCLUDEPATH += D:\OCI\include
LIBPATH += D:\OCI\lib\MSVC
在qsql_oci.cpp文件的1559行找到OCIBindByPos2函数,替换为:
        r = OCIBindByPos(
                d->sql, &bindColumn.bindh, d->err, i + 1,
                bindColumn.data,
                bindColumn.maxLen,
                bindColumn.bindAs,
                bindColumn.indicators,
                reinterpret_cast<ub2*>(bindColumn.lengths),
                0,
                arrayBind ? bindColumn.maxarr_len : 0,
                arrayBind ? &bindColumn.curelep : 0,
                OCI_DEFAULT);

打开qsqldriverbase.pri文件,进行如下修改:

将include($$shadowed($$PWD)/qtsqldrivers-config.pri)替换为include(./configure.pri)

然后进行构建,构建成功后会在Qt安装目录的根目录(我的是D:\)中出现几个文件夹,我们主要是关注D:\plugins\sqldrivers目录下的文件,其中qsqloci.dll和qsqlocid.dll正是我们需要用到的release版和debug版的库文件,最后将这两个文件拷贝到Qt安装目录对应路径D:\Qt\Qt5.12.10\5.12.10\msvc2017\plugins\sqldrivers,以便能够正常导入和调用。

标签:oci,10,Qt,文件,数据库,bindColumn,OCI,Qt5.12
来源: https://blog.csdn.net/jecychendf/article/details/118325248