6#if __DCL_HAVE_ALLOC_DEBUG
7#undef __DCL_ALLOC_LEVEL
8#define __DCL_ALLOC_LEVEL __DCL_ALLOC_INTERNAL
22#define __DCL_TRACE0_N __DCL_TRACE0
23#define __DCL_TRACE1_N __DCL_TRACE1
24#define __DCL_TRACE2_N __DCL_TRACE2
25#define __DCL_TRACE3_N __DCL_TRACE3
26#define __DCL_TRACE4_N __DCL_TRACE4
27#define __DCL_TRACE5_N __DCL_TRACE5
29#define __DCL_TRACE0_N(fmt)
30#define __DCL_TRACE1_N(fmt, arg)
31#define __DCL_TRACE2_N(fmt, arg1, arg2)
32#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
33#define __DCL_TRACE4_N(fmt, arg1, arg2, arg3, arg4)
34#define __DCL_TRACE5_N(fmt, arg1, arg2, arg3, arg4, arg5)
42#define __SET_ERROR_HANDLE(_error, _status, _OCIError) \
43 conn()->setErrorHandle(_error, _status, _OCIError, \
44 true, __THIS_FILE__, __LINE__)
45#define __SET_ERROR_MSG(_msg) \
46 conn()->setErrorMessage(_msg, __THIS_FILE__, __LINE__)
60 conn()->DescriptorFree(
70 return (
OciQuery*)Field::__queryHandle;
74 ub2 _sqlt,
void* _buf, ub2 _buflen
78 Field::__queryHandle = _queryHandle;
82 OCIParam* param =
NULL;
83 sword status = OCIParamGet(
84 query()->stmtHandle(),
86 conn()->errorHandle(),
90 if (status != OCI_SUCCESS) {
103 conn()->errorHandle()
105 if (status != OCI_SUCCESS) {
111 Field::__name = UTF8Decoder::decode((
const char*)name, size);
120 size =
sizeof(precision);
127 conn()->errorHandle()
130 if (status != OCI_SUCCESS) {
136 size =
sizeof(scale);
143 conn()->errorHandle()
146 if (status != OCI_SUCCESS) {
151 Field::__precision = precision;
152 Field::__scale = scale;
158 size =
sizeof(dataSize);
165 conn()->errorHandle()
168 if (status != OCI_SUCCESS) {
194 case SQLT_IBDOUBLE: {
206 case SQLT_TIMESTAMP: {
212 case SQLT_TIMESTAMP_TZ: {
218 case SQLT_TIMESTAMP_LTZ: {
224 case SQLT_INTERVAL_YM: {
230 case SQLT_INTERVAL_DS: {
329 if (status != OCI_SUCCESS) {
335 OCIDefine* defnp =
NULL;
337 status = OCIDefineByPos(
338 query()->stmtHandle(),
340 conn()->errorHandle(),
353 status = OCIDefineByPos(
354 query()->stmtHandle(),
356 conn()->errorHandle(),
366 if (status == OCI_SUCCESS) {
367 status = OCIDefineDynamic(
369 conn()->errorHandle(),
375 if (status != OCI_SUCCESS) {
401 Field::__name.data(), _bufType, *_size);
404 Field::__name.data(), _bufType, *_size);
407 String::tryString((
const char*) _buf, *_size).data());
426 return ((
OciField*)_octxp)->defineCallback(
449#if defined(__DCL_DEBUG) && 0
454 case OCI_FIRST_PIECE:
465 if (*_piecep == OCI_ONE_PIECE)
466 *_piecep = OCI_FIRST_PIECE;
468 if (*_piecep == OCI_FIRST_PIECE) {
#define __DCL_TRACE1_N(fmt, arg)
#define __DCL_TRACE3_N(fmt, arg1, arg2, arg3)
#define __SET_ERROR_MSG(_message)
#define __SET_ERROR_HANDLE(_SQLCODE)
#define __DCL_TRACE5_N(fmt, arg1, arg2, arg3, arg4, arg5)
#define __DCL_VERIFY(expr)
#define __DCL_ASSERT(expr)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
#define __DYNAMIC_BUFFER_SIZE
String toStringAll() const
sword DescriptorAlloc(void **_descpp, ub4 _type, size_t _xtramem_sz=0, void **_usrmempp=NULL)
static const wchar_t * __TYPE_NAME(ub2 _sqlt)
virtual OciQuery * query() const =0
bool getDataSize(size_t *_size, bool _maxsize)
bool getData(void *_buf, size_t *_size, SQL::DataType _bufType)
ub4 __callbackActualLength
OciConnection * conn() const
BytesOutputStream * __bytesOutput
static sb4 defineCallback(dvoid *_octxp, OCIDefine *_defnp, ub4 _iter, dvoid **_bufpp, ub4 **_alenpp, ub1 *_piecep, dvoid **_indpp, ub2 **_rcodepp)
bool init(SQL::Query *_query, ub4 _position, ub2 _type, void *_buf, ub2 _buflen)
virtual bool __getData(void *_buf, size_t *_size, SQL::DataType _bufType)
virtual const wchar_t * serverDataTypeName() const
virtual bool __getDataSize(size_t *_size, bool _maxsize)