资源简介
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
相关资源
- 用c++做的一个桌面捕抓游戏
- OpenGl文字显示c++类
- DH密钥交换,C++代码
- 基于VS2010的C++小学生四则算数测试系
- 图书信息管理系统 c++
- windows 64位redis2.6 API C++库和头文件
- 基于Qt的直升机运行
- VC/MFC 布局类
- MFC 动态数据显示控件
- Joseph C++代码
- 电梯仿真系统C++
- C++经典实例代码89434
- PSO算法C++实现
- C++编写图书管理类
- 模拟银行业务系统C++实现
- 一个好用的C++编写的websocket服务端d
- C++ STL库函数总结纯手打,主要偏向
- 自考 C++程序设计历年真题 附答案
- C++动态规划求解TSP问题备忘录方法
- 记账软件源代码——自己编的C++实现
- 循环码的C++实现
- 斗地主MFC源代码
- 使用动态优先权的进程调度算法的模
- 华为和google的C++编码规范
- 读取串口数据并画实时曲线的VC++程序
- sqlite3 C++访问
- WebBench(c++版本)
- C++ 3D 五子棋 opengl
- 特洛伊木马(C/C++)
- C++二级考试试题含答案和解析
评论
共有 条评论