欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

OCCI开发环境搭建

程序员文章站 2022-06-12 14:50:17
...

OCCI开发环境搭建,由于10.2版本的instant client没有支持vs2005的动态库,即使编译成功,运行时也会报各种奇奇怪怪的问题,所以选

1、参考文档

工欲善其事,,必先利其器。Oracle官方参考文档:Oracle Document。里面有各种文档,其中有两本是关于oci和occi的。

c语言《Oracle Call Interface Programmer's Guide》和c++语言《Oracle C++ Call Interface Programmer's Guide》。

2、vs2005 开发环境搭建

本文只介绍OCCI开发环境的搭建,关于oci开发环境,基本等同。

2.1、下载库和头文件

下载地址:?ssSourceSiteId=ocomen

由于10.2版本的instant client没有支持vs2005的动态库,即使编译成功,运行时也会报各种奇奇怪怪的问题,所以选择支持vs2005的11.2.0.3.0版本。

搭建开发环境需下载两个文件:

  • instantclient-basic-nt-11.2.0.3.0.zip。这个包包含运行OCCI程序的动态链接库。
  • instantclient-sdk-nt-11.2.0.3.0.zip。这个包包含开发库的头文件、静态链接库以及occi示例程序。
  • 2.2、配置

    解压2.1中下载的两个包。

    OCCI项目的属性-》配置属性-》C/C++-》常规-》附加包含目录 中添加解压后的“instantclient_11_2\sdk\include”目录;

    OCCI项目的属性-》配置属性-》连接器-》常规-》附加库目录 中添加解压后的“instantclient_11_2\sdk\lib\msvc\vc8”目录;

    OCCI项目的属性-》配置属性-》连接器-》输入-》附加依赖项 中添加oraocci11.lib库。

    将解压后的instantclient_11_2目录中的dll文件拷贝至编译的可执行文件目录。

    3、搭建开发环境中遇到的问题 3.1、10.2版本的问题

    由于系统原本安装了10.2版本的Oracle client 。安装客户端时会自动安装oci开发库。原本想用10.2版本的库,哪知道这个版本不支持vs2005,编译能正常通过,可运行时就会报奇奇怪怪的错误。最后只好重新下载11.2的开发库。

    3.2、linux开发环境的搭建

    linux环境搭建和vs2005开发环境搭建差不多。由于linxu上没有安装oracle数据库和客户端,因此没有什么干扰。直接在ldconf中添加了动态链接库目录,这样就不用把动态链接库拷贝到可执行程序目录了。当然在win32开发环境中,如果不想拷贝动态链接库,你也可以在环境变量PATH中进行设置。

    3.3、关于demo

    对于下载包中的demo,不要指望直接编译就能运行。你需要根据自己的系统修改demo.mk文件。

    3.4、中文乱码问题

    如果你在查询中文显示乱码,极有可能是字符集问题。

    使用sqlplus查询:

    SQL>select userenv('language') from dual;

    查询到服务端的字符集设置是SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    创建环境变量函数里可以直接指定字符集,于是如下创建环境变量:

    env = Environment::createEnvironment ("ZHS16GBK","ZHS16GBK")

    字符集配对了,就不会产生乱码。

    OCCI开发环境搭建