windows 下 Qt4.8编译oracle数据库OCI驱动 并使用

本人是刚接触oracle数据库,同事在他自己电脑上搭的oracle服务器环境,我和组长想要通过QT编译的程序远程访问oracle服务器出现了问题。

网上找了一天,关于编译oracle数据库OCI驱动的编译方法都是一个版本的,都是在安装了本地安装了oracle服务器的情况下对OCI进行编译。

且不论OCI的使用,先谈一下OCI驱动的编译问题。

1、首先必须安装oracle数据库服务端or客户端,或者从oracle服务器安装文件夹拷贝头文件夹和库文件夹以及可执行文件

$ORACLEDIR\product\10.2.0\db_1\OCI\include
$ORACLEDIR\product\10.2.0\db_1\OCI\lib\MSVC\oci.lib
$ORACLEDIR\product\10.2.0\db_1\BIN


 

其中$ORACLEDIR为oracle服务器或客户端的安装路径。

 

2、找到QT源码中的OCI工程文件并打开,.pro路径如下

$QTDIR\src\plugins\sqldrivers\oci

 

打开OCI项目的oci.pro文件内容如下图

在其中添加拷贝的oracle的文件夹目标路径。

我直接拷贝OCI文件夹和BIN文件夹到E:盘下的Oracle目录。强调:所有库和头文件的目录不要带中文字符或者空格,否则包涵库文件夹的时候路径会有问题。

 

3、按本机电脑上的编译器的配置配置项目,选择构建配置生成debug/release版本,选择Qt版本使用相应的编译器编译,其中MSVC编译的库为.dll和.lib文件,mingw编译的库为.a和.so。

编译完成后,将构建目录下的相应库文件拷贝到

$QTDIR\plugins\sqldrivers


完成以上步骤即表示OCI驱动已经编译完成了。

 

接下来是OCI数据库的使用。。。。。。这个是组长晚上查到的

 

将拷贝的BIN文件夹中的oci.dll拷贝到C:\Windows\System32目录下即可

 

#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QStringList drivers=QSqlDatabase::drivers();
    foreach(QString driver,drivers)
    {
        qDebug()<


可以通过上面的代码测试加载了哪些数据库插件。

 

如果想要更详细的信息,可以在项目/运行设置/运行时环境变量中添加QT_DEBUG_PLUGINS=1,这样运行的时候会输出更详细的信息

参见利用QT_DEBUG_PLUGINS检查Qt的插件问题

 

为了写这个博客,我有查了些资料,结果碰到让我最纠结的问题,原来这些资料在QT Assistant中都有,点击查找OCI Plugin on Windows,神那,求解脱,早知道直接找QT 帮助了

 

 好吧,客户端还是要装一个的,记得把客户端的bin路径添加到环境变量亲

 
  
 
  
 
 

你可能感兴趣的:(QT)