Windows10下使用Qt5.14.2编译Oracle数据库驱动步骤如下:
1、Windows10下安装好Oracle11G R2数据库软件32位客户端软件,并配置好环境变量:
安装路径为:C:\app\Administrator\product\11.2.0,
环境变量 设置如下:
ORACLE_HOME:c:\app\Administrator\product\11.2.0\dbhome_1
TNS_ADMIN:C:\app\Administrator\product\11.2.0\client_1
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2、安装好QT5.14.2软件:
安装路径为C:\Qt\Qt5.14.2
3、打开QT软件,并打开要编译OCI项目C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\oci\oci.pro文件
4、修改oci.pro文件内容
4.1>注释配置行#QMAKE_USE += oci
4.2>新增配置行
QMAKE_LFLAGS +=C:\app\Administrator\product\11.2.0\client_1\oci.dll
INCLUDEPATH += C:\app\Administrator\product\11.2.0\dbhome_1\OCI\include
LIBPATH += C:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC
4.3>完整配置文件如下
TARGET = qsqloci
HEADERS += $$PWD/qsql_oci_p.h
SOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp
#注释下面行
#QMAKE_USE += oci
darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ
OTHER_FILES += oci.json
PLUGIN_CLASS_NAME = QOCIDriverPlugin
include(../qsqldriverbase.pri)
#新增如下配置
QMAKE_LFLAGS +=C:\app\Administrator\product\11.2.0\client_1\oci.dll
INCLUDEPATH += C:\app\Administrator\product\11.2.0\dbhome_1\OCI\include
LIBPATH += C:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC
5、修改qsql_oci.cpp文件内容:
5.1>打开1559行,将r = OCIBindByPos2(改为r = OCIBindByPos(
5.2>打开1565行,将bindColumn.lengths,改为reinterpret_cast<ub2*>(bindColumn.lengths),
6、执行QT编译运行三部曲:
清理所有项目=>执行qmake=>构建所有项目
生成三个驱动文件:
C:\plugins\sqldrivers\libqsqloci.a
C:\plugins\sqldrivers\qsqloci.dll
C:\plugins\sqldrivers\qsqloci.dll.debug
7、将生成的三个驱动文件从C:\plugins\sqldrivers拷贝到C:\Qt\Qt5.14.2\5.14.2\mingw73_32\plugins\sqldrivers下。并测试数据库连接