• 大小: 8KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: C/C++
  • 标签: OCI  ORACLE  C++  

资源简介

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


评论

共有 条评论