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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013919157/article/details/78051271

( 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 // _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<int>(1) << " - " <<  rs.Get<ostring>(2) << std::endl;
		}
	}
	catch(std::exception &ex)
	{
		std::cout << ex.what() << std::endl;
	}
	
	Environment::Cleanup();
	return EXIT_SUCCESS;
}
展开阅读全文

没有更多推荐了,返回首页