热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Linux下Eclipse使用OCCI连接Oracle

Linux下使用occi连接oracle的方法,不需要安装客户端1.这里假设你已经安装成功了oracle10g和EclipseC++环境。2.替换quot;opt

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 <<"connect to database failed: " < 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: " <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: " <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)
{
cout<m_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);
}


推荐阅读
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 本文详细介绍了如何在Linux系统中创建和管理DB2数据库,包括用户切换、数据库创建、错误处理、连接与断开、表空间和缓冲池的创建,以及用户权限管理和数据导入导出等操作。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • 中断向量是计算机系统中用于指向中断服务程序的入口地址。每个中断向量对应一个特定的中断事件,存储在内存中的中断向量表中。该表通常包含256个条目,每个条目占用4个字节,用于存放跳转指令或直接指向中断处理程序的地址。 ... [详细]
  • 本文提供了详细的步骤,介绍如何将基于Maven的Java EE项目从Eclipse IDE部署到JBoss应用服务器上。适合初学者和中级开发者参考。 ... [详细]
  • 本文总结了WebSphere应用服务器出现宕机问题的解决方法,重点讨论了关键参数的调整,包括数据源连接池、线程池设置以及JVM堆大小等,旨在提升系统的稳定性和性能。 ... [详细]
  • 基于Java的学生宿舍管理系统设计
    本论文探讨了如何利用Java技术设计和实现一个高效的学生宿舍管理系统。该系统旨在提高宿舍管理的效率,减少人为错误,同时增强用户体验。通过集成用户认证、数据管理和查询功能,系统能够满足学校宿舍管理的多样化需求。 ... [详细]
  • 本文探讨了符号三角形问题,该问题涉及由相同数量的“+”和“-”符号组成的三角形。通过递归回溯法,可以有效地搜索并计算符合条件的符号三角形的数量。 ... [详细]
  • 本文介绍了如何通过Java代码计算一个整数的位数,并展示了多个基础编程示例,包括求和、平均分计算、条件判断等。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本篇文章介绍如何将两个分别表示整数的链表进行相加,并生成一个新的链表。每个链表节点包含0到9的数值,如9-3-7和6-3相加得到1-0-0-0。通过反向处理链表、逐位相加并处理进位,最终再将结果链表反向,即可完成计算。 ... [详细]
author-avatar
浆果范_163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有