📄 oratype.cpp
字号:
#define __OCICPP_INTERNAL_USE_#include "OraType.h"/*! \class OCICPP::OraType \brief Abstract base class for the types supplied by the oracle server */OCICPP::OraType::OraType(OCIEnv *envhp,OCIError *errhp,OCIParam *paramd,ub2 type,int Rows): definehp(0),env(envhp),err(errhp),null(0),nRows(Rows){ char *tmpColName; text *colName; ub4 colNameLen; internalType=type; CHECKERR(errhp,OCIAttrGet((dvoid *) paramd,OCI_DTYPE_PARAM,(dvoid **) &colName,(ub4 *) &colNameLen,(ub4) OCI_ATTR_NAME,errhp)); tmpColName=(char *)calloc(colNameLen+1,sizeof(char)); for(unsigned i=0;i<colNameLen;i++) tmpColName[i]=colName[i]; attrName.assign(tmpColName); free(tmpColName); setTypeName(); null=(sb2 *)calloc(nRows,sizeof(sb2)); DEBUG(DLEV_DEBUG,"AttrName=%s TypeName=%s\n",attrName.c_str(),typeName.c_str());}OCICPP::OraType::~OraType(){ free(null);}void OCICPP::OraType::setTypeName() { switch(internalType) { case SQLT_CHR: typeName.assign("VARCHAR2"); break; case SQLT_NUM: typeName.assign("NUMBER"); break; case SQLT_LNG: typeName.assign("LONG"); break; case SQLT_RDD: case SQLT_RID: typeName.assign("ROWID"); break; case SQLT_DAT: typeName.assign("DATE"); break; case SQLT_BIN: typeName.assign("RAW"); break; case SQLT_LBI: typeName.assign("LONG RAW"); break; case SQLT_AFC: typeName.assign("CHAR"); break; case SQLT_LAB: typeName.assign("MLSLABEL"); break; case SQLT_REF: typeName.assign("REF"); break; case SQLT_CLOB: typeName.assign("CLOB"); break; case SQLT_BLOB: typeName.assign("BLOB"); break; case SQLT_FILE: typeName.assign("BFILE"); break; case SQLT_RSET: typeName.assign("Nested Table"); break; default: typeName.assign("Unknown"); break; }}int OCICPP::OraType::getType() const { return (int)internalType;}unsigned OCICPP::OraType::getSize() const { return size;}int OCICPP::OraType::getReqType() const { return (int)ReqType;}void OCICPP::OraType::getTypeName(std::string &tname) const { tname.assign(typeName);}void OCICPP::OraType::getAttrName(std::string &aname) const { aname.assign(attrName);}bool OCICPP::OraType::isNull(int row) const { return (null[row]==-1)?1:0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -