当前位置:Gxlcms > mysql > OCCI开发环境搭建

OCCI开发环境搭建

时间:2021-07-01 10:21:17 帮助过:21人阅读

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")

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

    linux

    人气教程排行