8#if __DCL_HAVE_ALLOC_DEBUG
9#undef __DCL_ALLOC_LEVEL
10#define __DCL_ALLOC_LEVEL __DCL_ALLOC_INTERNAL
24#define __DCL_TRACE0_N __DCL_TRACE0
25#define __DCL_TRACE1_N __DCL_TRACE1
26#define __DCL_TRACE2_N __DCL_TRACE2
27#define __DCL_TRACE3_N __DCL_TRACE3
28#define __DCL_TRACE4_N __DCL_TRACE4
30#define __DCL_TRACE0_N(fmt)
31#define __DCL_TRACE1_N(fmt, arg)
32#define __DCL_TRACE2_N(fmt, arg1, arg2)
33#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
34#define __DCL_TRACE4_N(fmt, arg1, arg2, arg3, arg4)
43#define __SET_ERROR(_error, status, pError) \
44 conn()->setErrorStatus(_error, status, pError, \
45 true, __THIS_FILE__, __LINE__)
62 conn()->OCIDescriptorFree(
78 Field::__queryHandle = _queryHandle;
84 OCIStmt* pStmt = query()->stmtHandle();
85 sword status = OCI_SUCCESS;
87 OCIParam* _param =
NULL;
88 status = ::OCIParamGet(
94 if (status != OCI_SUCCESS) {
101 status = ::OCIAttrGet(_param, OCI_DTYPE_PARAM,
106 if (status != OCI_SUCCESS) {
112 Field::__name = UTF8Decoder::decode((
const char*)name, size);
121 status = ::OCIAttrGet(_param, OCI_DTYPE_PARAM,
126 if (status != OCI_SUCCESS) {
132 status = ::OCIAttrGet(_param, OCI_DTYPE_PARAM,
137 if (status != OCI_SUCCESS) {
144 status = ::OCIAttrGet(_param, OCI_DTYPE_PARAM,
149 if (status != OCI_SUCCESS) {
153 status = ::OCIAttrGet(_param, OCI_DTYPE_PARAM,
158 if (status != OCI_SUCCESS) {
162 Field::__precision = precision;
163 Field::__scale = scale;
187 case SQLT_TIMESTAMP: {
195 case SQLT_TIMESTAMP_TZ: {
203 case SQLT_TIMESTAMP_LTZ: {
211 case SQLT_INTERVAL_YM: {
219 case SQLT_INTERVAL_DS: {
286 if (__dataType == SQLT_CFILE)
298 if (__dataType == SQLT_BFILE)
329 if (status != OCI_SUCCESS) {
336 status = ::OCIDefineByPos(
349 if (status == OCI_SUCCESS)
350 status = OCIDefineDynamic(
358 status = ::OCIDefineByPos(
373 if (status != OCI_SUCCESS) {
416 return ((
OciField*)octxp)->onCallbackDefine(
431 ub4 **ppnActualLength,
433 dvoid **ppvIndicator,
456 if (*pnPiece == OCI_ONE_PIECE)
457 *pnPiece = OCI_FIRST_PIECE;
459 if (*pnPiece == OCI_FIRST_PIECE) {
#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
#define __DCL_VERIFY(expr)
#define __DCL_ASSERT(expr)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
#define DYNAMIC_BUFFER_SIZE
#define __SET_ERROR(_errorCode)
String toStringAll() const
sword OCIDescriptorAlloc(void **ppDescriptorHandle, ub4 nDescriptorType, size_t xtramem_sz=0, void **ppvUserMem=NULL)
OCIError * errorHandle() const
void setErrorEx(const ByteString &_message)
bool getData(void *_pv, size_t *_size, SQL::DataType _dataType)
static const wchar_t * dataTypeName(ub2 _dataType)
bool getDataSize(size_t *_size, bool _maxSize)
ub4 __callbackActualLength
OciConnection * conn() const
BytesOutputStream * __bytesOutput
virtual bool __getDataSize(size_t *_size, bool _maxSize)
static sb4 CallbackDefine(dvoid *octxp, OCIDefine *defnp, ub4 iter, dvoid **bufpp, ub4 **alenpp, ub1 *piecep, dvoid **indpp, ub2 **rcodep)
bool init(SQL::Query *_query, size_t _position)
virtual bool __getData(void *_pv, size_t *_size, SQL::DataType _dataType)
virtual bool isNull() const
virtual const wchar_t * serverDataTypeName() const
sb4 onCallbackDefine(OCIDefine *pDefine, ub4 nIterator, dvoid **ppvBuffer, ub4 **ppnActualLength, ub1 *pnPiece, dvoid **ppvIndicator, ub2 **ppnReturnCode)