OCILIB 连接Oracle数据库——安装配置

来源:互联网 发布:消防三知四会一联通 编辑:程序博客网 时间:2024/06/05 06:32

( CSDN格式不友好,同样的内容请参考:简书 )

一、安装配置

1、从vrogier.github.io下载最新的ocilib文件,将include和lib文件夹放到项目目录下,将dll拷贝到项目运行目录下。

2、在项目中添加头文件和lib

#include "ocilib.hpp"#ifdef _WIN64#pragma comment(lib,"ocilib/lib64/ociliba.lib")#else#pragma comment(lib,"ocilib/lib32/ociliba.lib")#endif // _WIN64using namespace ocilib;

3、ocilib是可以在没有安装oracle客户端的机器中运行的,但是需要带上oracle客户端中的两个文件oci.dlloraociei11.dll,并在环境初始化时指定这两个文件的目录,即Initialize()的第二个参数。

Environment::Initialize(Environment::Default,ociDllPath);    //ociDllPath 为 oci.dll和oraociei11.dll的目录

4、官方提供了C API和C++ API两种方式,参看文档介绍:

 * OCILIB ++是基于C OCILIB API构建的一种用于Oracle的C ++ API * 全部的C API移植到C++ * (实现为一小组头文件,不需要库编译 * 基于C ++和STL范例(强类型,模板,容器,RAII,异常处理,运算符,堆栈对象) * 基于设计模式(RAII,授权,引用计数,智能指针,代理,单例) * 不需要用户动态对象分配 * 唯一的依赖是:STL和OCILIB C API * OCILIB C API调用中发生的任何故障将抛出ocilib ::异常.由于一致性原因,此类派生自std :: Exception * 每个C OCILIB对象句柄都有其C ++类计数器部分 * 整个OCILIB C文档(概念,用例,功能和功能)对OCILIB ++仍然有效

5、简单demo(这里只展示C++版本的,C版本的请参看文档):

​ C++版本:

#include "ocilib.hpp"using namespace ocilib;int main(void){    try    {        Environment::Initialize();        Connection con("db", "usr", "pwd");        Statement st(con);        st.Execute("select intcol, strcol from table");        Resultset rs = st.GetResultset();        while (rs.Next())        {            std::cout << rs.Get<int>(1) << " - " <<  rs.Get<ostring>(2) << std::endl;        }    }    catch(std::exception &ex)    {        std::cout << ex.what() << std::endl;    }    Environment::Cleanup();    return EXIT_SUCCESS;}
原创粉丝点击