使用occi连接oracle的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用occi连接oracle的方法,不需要安装客户端

//by rainfish from /

1. 下载

首先下载occi所需要的库:[url=/technology/tech/oci/occi/occidownloads.html]http://ww /technology/tech/oci/occi/occidownloads.html

下载linux版本。

然后下载occi所需要的头文件:即instantclient-sdk

/otn/l ... inux32-11.2.0.1.zip

解压后里面有所需要的头文件,主要是occi.h

2. 将occi所需库拷贝到/usr/local/lib/

然后:

ln -s libocci.so libocci.so.11.1

ln -s libclntsh.so.11.1 libclntsh.so

3.

示例,根据互联网修改的

//oracle2.cpp

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace oracle:cci;

class dbAccessor

{

public:

dbAccessor();

~dbAccessor();

int get_dbstat();

bool Connect_DB();

void Disconn_DB();

bool ExecuteUpdate(const char* sql);

ResultSet* ExecuteQuery(const char* sql);

void ClearQuery(ResultSet* set);

void Init(const char* dbName,const char* dbUser,const char* dbPass);

void SetDate(unsigned int paramIndex, time_t timeVal);

private:

Environment* m_env;

Connection* m_conn;

Statement* m_stmt;

const char *m_szUser;

const char *m_szPassword;

const char *m_szDbName;

bool bConnected;

};

using namespace std;

using namespace oracle:cci;

dbAccessor::dbAccessor()

{

bConnected=false;

m_env=0;

m_conn=0;

m_stmt=0;

}

dbAccessor::~dbAccessor()

{

Disconn_DB();

}

void dbAccessor::Init(const char* dbName,const char* dbUser,const char* dbPass) {

m_szDbName = dbName;

m_szUser = dbUser;

m_szPassword = dbPass;

}

bool dbAccessor::Connect_DB()

{

if(m_env ==0)

m_env = Environment::createEnvironment();

if(m_conn==0){

try {

m_conn=m_env->createConnection(m_szUser,m_szPassword,m_szDbName);

} catch (SQLException& ex) {

m_conn = 0;

cout << "connect to database failed: " << ex.getMessage() << endl;

return false;

}

}

return true;

}

void dbAccessor:isconn_DB()

{

if(m_stmt!=0 && m_conn!=0)

m_conn->terminateStatement(m_stmt);

if(m_conn!=0 && m_env!=0)

m_env->terminateConnection(m_conn);

}

// 执行数据库更新操作,包括insert、update、delete操作

bool dbAccessor::ExecuteUpdate(const char* sql)

{

bool update_OK = true;

if(sql==0){

exit(1);

}

if(m_conn==0&&m_env==0){

exit(1);

}

try {

m_stmt=m_conn->createStatement(sql);

} catch (SQLException& ex) {

m_stmt = NULL;

cout << "ExecuteUpdate failed: " << ex.getMessage() << endl; exit(1);

}

update_OK = m_stmt->executeUpdate();

return update_OK;

}

//执行数据库查询操作,即select操作

ResultSet* dbAccessor::ExecuteQuery(const char* sql)

{

ResultSet* set=0;

if(sql==0){

exit(1);

}

if(m_conn==0&&m_env==0){

exit(1);

}

try {

m_stmt=m_conn->createStatement(sql);

} catch (SQLException& ex) {

m_stmt = NULL;

cout << "ExecuteQuery failed: " << ex.getMessage() << endl; exit(1);

相关文档
最新文档