ociobj2.cpp.old
来自「一个通用的oracle OCI开发程序包」· OLD 代码 · 共 53 行
OLD
53 行
#include "ociobj.h"
// Microsoft strikes again!! Templates get confused with large files (>500 lines!)
std::vector<COCIObject> COCIObject::array_pin(std::vector<COCIRef>& refs, int CORDepth)
{
/* OCIComplexObject *corhp = 0;
OCIComplexObjectComp *cordp = 0;
if(CORDepth > 0)
{
/*COCIObject tmp = *refs[0];
const COCIType& type = tmp.get_type();*/
/*CHECK(refs[0].m_Session.get_error(), OCIHandleAlloc((dvoid *)refs[0].m_Session.get_env(), (dvoid **)&corhp,
(ub4)OCI_HTYPE_COMPLEXOBJECT, 0,
(dvoid **)0));
CHECK(refs[0].m_Session.get_error(), OCIDescriptorAlloc((dvoid *)refs[0].m_Session.get_env(), (dvoid **)&cordp,
(ub4)OCI_DTYPE_COMPLEXOBJECTCOMP, 0,
(dvoid **)0)); */
//}
OCIRef** ref = new OCIRef * [refs.size()];
dvoid** obj_array = new dvoid * [refs.size()];
std::vector<COCIObject> objs(refs.size(),*refs[0]);
for(int i = 0; i < refs.size(); i++)
{
ref[i] = (OCIRef*)refs[i].get_instance();
}
memset(obj_array,0,objs.size()*sizeof(dvoid*));
ub4 pos = 0;
CHECK(refs[0].m_Session.get_error(),OCIObjectArrayPin(refs[0].m_Session.get_env(), refs[0].m_Session.get_error(), ref,
objs.size(), (OCIComplexObject **)0,0,
OCI_PIN_ANY,
OCI_DURATION_TRANS, OCI_LOCK_NONE,
obj_array, &pos));
for(i = 0; i < objs.size(); i++)
{
objs[i].set_instance(obj_array[i]);
}
delete [] ref;
delete [] obj_array;
return objs;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?