资源简介
OCI连接oracle数据库(c++)实现
已经封装好的c++实现的Oci

代码片段和文件信息
#include “OraDB.h“
COraDB::COraDB()
{
m_nInitFlag = 0;
m_nConnectFlag = 0;
memset(m_szDBName 0 sizeof(m_szDBName));
// strncpy(m_szDBName “ora“ sizeof(m_szDBName) - 1);
memset(m_szUser 0 sizeof(m_szUser));
// strncpy(m_szUser “sxit“ sizeof(m_szUser) - 1);
memset(m_szPasswd 0 sizeof(m_szPasswd));
// strncpy(m_szPasswd “sxit“ sizeof(m_szPasswd) - 1);
m_DBInfo.m_hpEnv = NULL;
m_DBInfo.m_hpErr = NULL;
m_DBInfo.m_hpServer = NULL;
m_DBInfo.m_hpContext = NULL;
m_DBInfo.m_szError[0] = 0;
m_DBInfo.m_hpSession = NULL;
m_DBInfo.m_pOracleTypes = NULL;
m_DBInfo.m_lAutoCommit = 0;
m_QueryInfo.m_hpSelect = NULL;
m_QueryInfo.m_BindFields = NULL;
m_QueryInfo.FieldValues = NULL;
m_QueryInfo.nFieldCount = 0;
m_QueryInfo.nRecCount = 0;
}
COraDB::~COraDB()
{
}
void COraDB::CheckErr(HRESULT status)
{
static struct CErrorPair
{
sword w;
const char* szText;
}
epaErrors[] =
{
{OCI_SUCCESS “SUCCESS“}
{OCI_SUCCESS_WITH_INFO “SUCCESS_WITH_INFO“}
{OCI_NEED_DATA “NEED_DATA“}
{OCI_NO_DATA “NO_DATA“}
{OCI_INVALID_HANDLE “INVALID_HANDLE“}
{OCI_STILL_EXECUTING “STILL_EXECUTE“}
{OCI_CONTINUE “CONTINUE“}
};
int iPos=0;
if ( status == OCI_ERROR )
{
sb4 errcode = 0;
OCIErrorGet(m_DBInfo.m_hpErr 1 NULL &errcode (unsigned char*)m_DBInfo.m_szError sizeof(m_DBInfo.m_szError) OCI_HTYPE_ERROR);
}
else
{
// Look for description in static array
//DWORD nTotalResultCodes = sizeof(epaErrors) / sizeof(struct CErrorPair);
int nTotalResultCodes = sizeof(epaErrors) / sizeof(struct CErrorPair);
//for (iPos = 0; iPos < sizeof(epaErrors); ++ iPos )
for (iPos = 0; iPos < nTotalResultCodes; ++ iPos )
{
if ( epaErrors[iPos].w == status )
{
strcpy( m_DBInfo.m_szError epaErrors[iPos].szText );
break;
}
}
}
}
void COraDB::UpStr(char *pszStr)
{
if (pszStr == NULL)
return;
// printf(“pszStr = %s\n“ pszStr);
while(*pszStr)
{
if(*pszStr >= ‘a‘ && *pszStr <= ‘z‘)
*pszStr = *pszStr - ‘a‘ + ‘A‘;
pszStr++;
}
}
void COraDB::TrimLeft(char *pszStr)
{
int i = 0 len = 0;
if (pszStr == NULL)
return;
len=strlen(pszStr);
while(len > 0 && (pszStr[i] == ‘ ‘ || pszStr[i] == ‘\t‘ || pszStr[i] == ‘\r‘ || pszStr[i] == ‘\n‘))
{
len--;
i++;
}
if(i > 0)
{
memmove(pszStrpszStr+ilen);
pszStr[len]=0;
}
}
void COraDB::TrimRight(char *pszStr)
{
int i;
if (pszStr == NULL)
return;
i = strlen(pszStr);
while(i > 0 && (pszStr[i-1] ==‘ ‘ || pszStr[i-1] ==‘\t‘
|| pszStr[i-1] ==‘\n‘ || pszStr[i-1] ==‘\r‘))
i--;
pszStr[i]=0;
}
void COraDB::TrimStr(char *pszStr)
{
if (pszStr == NULL)
return;
TrimLeft(pszStr);
TrimRight(pszStr);
}
char* COraDB::GetErrStr()
{
return m_DBInfo.m_szError;
}
int COraDB::InitDB()
{
HRESULT hr;
if (m_nInitFlag == 1)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5187 2009-04-20 15:38 oracle数据库操作类(c++实现)\BasicDefine.h
文件 24350 2006-09-05 22:26 oracle数据库操作类(c++实现)\OraDB.cpp
文件 3875 2009-07-30 15:49 oracle数据库操作类(c++实现)\OraDB.h
目录 0 2011-07-20 11:21 oracle数据库操作类(c++实现)
----------- --------- ---------- ----- ----
33412 4
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
评论
共有 条评论