1. 程式人生 > >OCILIB 連線Oracle資料庫——安裝配置

OCILIB 連線Oracle資料庫——安裝配置

( 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.dll

oraociei11.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; }