您好,欢迎访问一九零五行业门户网

Linux下Eclipse使用OCCI连接Oracle

linux下使用occi连接oracle的方法,不需要安装客户端1. 这里假设你已经安装成功了oracle10g和eclipse c++环境。2. 替换quot;opt
linux下使用occi连接oracle的方法,不需要安装客户端
1. 这里假设你已经安装成功了oracle10g和eclipse c++环境。
2. 替换opt/..../db_1/lib路径下的libocci.so.10.1和libocci10.a。(首先下载occi所需要的库,从这里可以下载到所需要的两个文件)
3.编辑/etc/ld.so.conf,在最后一行输入:/opt.../db_1/lib
4,执行ldconfig
5.
示例,根据互联网修改的
//oracle.h(头文件)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace oracle::occi;
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;
};
=======oracle.cpp=====
#include oracle.h
using namespace std;
using namespace oracle::occi;
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    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 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 exit(1);
}
set=m_stmt->executequery();
return set;
}
void dbaccessor::clearquery(resultset* set)
{
if(m_stmt==0){
exit(1);
}
if(set==0){
exit(1);
}
m_stmt->closeresultset(set);
}
void dbaccessor::setdate(unsigned int paramindex, time_t timeval)
{
coutm_stmt = m_conn->createstatement();
assert(m_stmt != null);
tm* timestruct = localtime(&timeval);
date date(m_env,
      timestruct->tm_year + 1900,
      timestruct->tm_mon + 1,
      timestruct->tm_mday,
      timestruct->tm_hour,
      timestruct->tm_min,
      (timestruct->tm_sec == 60) ? 0 : timestruct->tm_sec);
m_stmt->setdate(paramindex, date);
}
其它类似信息

推荐信息