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

一、安装配置

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 // _WIN64

using 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(1) << " - " <<  rs.Get(2) << std::endl;
        }
    }
    catch(std::exception &ex)
    {
        std::cout << ex.what() << std::endl;
    }
    
    Environment::Cleanup();
    return EXIT_SUCCESS;
}

你可能感兴趣的:(OCILIB 连接Oracle数据库——安装配置)