快速业务通道

Linux下使用C/C 访问数据库

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-17
ption(int errno)
{
this ->m_iErrNo = errno;
this ->m_sErrBuff[0] = 0;
this ->m_sErrFunc[0] = 0;
}
/* 拥有帝国一切,皆有可能。欢迎访问phome.net
* OCIException.h
*
* Created .: Mar 1, 2009
* Author: Steven Wee
*/

#ifndef OCIEXCEPTION_H_
#define OCIEXCEPTION_H_

#include "Common.h"
#include "Exception.h"

class OCIException : public Exception
{
public:
OCIException(sb4 errno);
OCIException(sb4 errno, char * errfunc);
OCIException(sb4 errno, dvoid * erroci);
OCIException(sb4 errno, dvoid * erroci, char * errfunc);

char * GetErrMsg();
char * GetErrFunc();
int GetErrNo();
private:
void CheckError(sb4 errno);
void CheckError(sb4 errno, dvoid * erroci);
};

#endif /* OCIEXCEPTION_H_ */
/*
* OCIException.cpp
*
* Created .: Mar 1, 2009
* Author: Steven Wee
*/
#include "OCIException.h"

void OCIException::CheckError(sb4 errno)
{
text errBuff[512];
switch ( errno )
{
case OCI_SUCCESS:
break;
case OCI_SUCCESS_WITH_INFO:
sprintf( this ->m_sErrBuff, "OCI_SUCCESS_WITH_INFO" );
break;
case OCI_NEED_DATA:
sprintf( this ->m_sErrBuff, "OCI_NEED_DATA" );
break;
case OCI_NO_DATA:
sprintf( this ->m_sErrBuff, "OCI_NO_DATA" );
break;
case OCI_ERROR:
sprintf( this ->m_sErrBuff, "OCI_ERROR" );
break;
case OCI_INVALID_HANDLE:
sprintf( this ->m_sErrBuff, "OCI_INVALID_HANDLE" ); 拥有帝国一切,皆有可能。欢迎访问phome.net
break;
case OCI_STILL_EXECUTING:
sprintf( this ->m_sErrBuff, "OCI_STILL_EXCUTING" );
break;
case OCI_CONTINUE:
sprintf( this ->m_sErrBuff, "OCI_CONTINUE" );
break;
default:
break;
}
}

void OCIException::CheckError(sb4 errno, dvoid * erroci)
{
text errBuff[512];
switch ( errno )
{
case OCI_SUCCESS:
break;
case OCI_SUCCESS_WITH_INFO:
sprintf( this ->m_sErrBuff, "OCI_SUCCESS_WITH_INFO" );
break;
case OCI_NEED_DATA:
sprintf( this ->m_sErrBuff, "OCI_NEED_DATA" );
break;
case OCI_NO_DATA:
sprintf( this ->m_sErrBuff, "OCI_NO_DATA" );
break;
case OCI_ERROR:
OCIErrorGet( (dvoid*)erroci, (ub4)1, (text*)NULL, &this ->m_iErrNo, errBuff, (ub4)sizeof(errBuff), OCI_HTYPE_ERROR);
sprintf( this ->m_sErrBuff, "%.*s", strlen((char*) errBuff) - 1, errBuff);
break;
case OCI_INVALID_HANDLE:
sprintf( this ->m_sErrBuff, "OCI_INVALID_HANDLE" );
break;
case OCI_STILL_EXECUTING:
sprintf( this ->m_sErrBuff, "OCI_STILL_EXCUTING" );
break;
case OCI_CONTINUE:
sprintf( this ->m_sErrBuff, "OCI_CONTINUE" );
break;
default:
break;
}
}

OCIException::OCIException(sb4 errno) : Exception( (int)errno )
{
this ->CheckError(errno);
}

OCIException::OCIException(sb4 errno, char * errfunc) : Exception( (int)errno )
{
strcpy( this ->m_sErrBuff, errfunc);
this ->CheckError(errno);
}

OCIException::OCIException(sb4 errno, dvoid * erroci) : Exception( (int)errno )
{
this ->CheckError(errno,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号