📄 orarefcur.cpp
字号:
#include "stdafx.h"
#define __OCICPP_INTERNAL_USE_
#include "OraRefCur.h"
/*! \class OCICPP::OraRefCur
\brief Client-side representation of a reference to a cursor variable within the Oracle server
*/
OCICPP::OraRefCur::OraRefCur(OCIEnv *envhp,OCIError *errhp,OCIParam *paramd,ub2 type,int rows) :
OraType(envhp,errhp,paramd,type,rows),stmthp(0)
{
ReqType=SQLT_RSET;
size=0;
stmthp=(OCIStmt **)calloc(nRows,sizeof(OCIStmt *));
for(int i=0;i<nRows;i++) {
if(OCIHandleAlloc((dvoid *)env,(dvoid **)&stmthp[i],OCI_HTYPE_STMT,(size_t) 0, (dvoid **) 0)!=OCI_SUCCESS) {
throw OraError("OCICPPLIB: OraRefCur: HandleAlloc failed",OCICPPERROR);
}
}
DEBUG(DLEV_DEBUG,"RefCursor created\n");
}
OCICPP::OraRefCur::~OraRefCur() {
for(int i=0;i<nRows;i++) {
OCIHandleFree(stmthp[i],OCI_HTYPE_STMT);
}
free(stmthp);
OCIHandleFree(definehp,OCI_HTYPE_DEFINE);
}
void OCICPP::OraRefCur::getStr(std::string &str,int row) {
str.assign("REFCURSOR");
}
void OCICPP::OraRefCur::define(OCIStmt *stmt,int col) {
CHECKERR(err,OCIDefineByPos(stmt, &definehp, err,col+1, stmthp, (sb4)0, ReqType,
(dvoid *)null, 0, 0, OCI_DEFAULT));
}
OCIStmt *OCICPP::OraRefCur::getStmt(int row) {
return stmthp[row];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -