OCILIB 連線Oracle資料庫——安裝配置
阿新 • • 發佈:2019-02-17
( 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;
}