DCL 3.7.4
Loading...
Searching...
No Matches
OciData.h
Go to the documentation of this file.
1#ifndef __DCL_OCI_DATA_H__
2#define __DCL_OCI_DATA_H__ 20050222
3
4__DCL_BEGIN_NAMESPACE
5
6class OutputStream;
8
9class OciQuery;
10
11#define __DYNAMIC_BUFFER_SIZE 1024
12
14{
15protected:
16 ub4 __position; // 1, 2, ...
17 ub4 __dynamicMode; // OCI_DEFAULT, OCI_DYNAMIC_FETCH, OCI_DATA_AT_EXEC
18
19 ub4 __descType; // 0, OCI_DTYPE_XXX, OCI_DTYPE_FILE, OCI_DTYPE_LOB, ...
20 void* __valuePtr; // valuep or NULL
21 sb4 __valueSize; // value_sz
22 ub2 __valueType; // Define, Bind SQLT_XXX
23
24 sb2 __indicator; // indp, null(-1), not null(0)
25 ub2 __actualLength; // rlenp,alenp, areported in bytes for OUT binds
26 ub2 __returnCode; // rcodep, column-level return codes
28
29 BytesOutputStream* __bytesOutput; // for OCI_DYNAMIC_FETCH or OutBind for SQLT_LNG, SQLT_LBI
30 size_t __dataSize; // for SQL::Field, SQL::Param
31 size_t __maxDataSize; // for SQL::Field, SQL::Param
32
33public:
34 bool onAfterFetch();
35
36protected:
37 virtual OciQuery* query() const = 0;
38 OciConnection* conn() const;
39
40 OciData();
41 ~OciData();
42
43 const wchar_t* serverDataTypeName() const;
44
45 bool getDataSize(size_t* _size, bool _maxsize);
46 bool getData(void* _buf, size_t* _size, SQL::DataType _bufType);
47
48 bool getInteger(void* _buf, size_t* _size, SQL::DataType _bufType);
49 bool getFloat(void* _buf, size_t* _size);
50 bool getNumericText(char* _buf, size_t* _size);
51 bool getDate(SQL::Date* _buf, size_t* _size);
52 bool getTime(SQL::Time* _buf, size_t* _size);
53 bool getTimeStamp(SQL::TimeStamp* _buf);
54 bool getInterval(SQL::Interval* _buf);
55 bool getBytes(byte_t* _buf, size_t* _size);
56 bool writeTo(OutputStream* _buf, size_t* _size);
57
58 bool getBytesFromLob(byte_t* _buf, size_t* _size);
59 bool writeToFromLob(OutputStream* _output, size_t* _size);
60
61public:
62 static const wchar_t* __TYPE_NAME(ub2 _sqlt);
63 static ub4 __TYPE_SIZE(ub2 _sqlt, ub4 _size);
64 static size_t __TYPE_ALIGN(size_t _offset, ub2 _sqlt);
65};
66
68{
69 return query()->conn();
70}
71
72__DCL_END_NAMESPACE
73
74#endif // __DCL_OCI_DATA__
unsigned char byte_t
Definition Config.h:246
sb2 __indicator
Definition OciData.h:24
bool getBytes(byte_t *_buf, size_t *_size)
Definition OciData.cpp:587
ub2 __valueType
Definition OciData.h:22
bool writeToFromLob(OutputStream *_output, size_t *_size)
Definition OciData.cpp:809
bool getTime(SQL::Time *_buf, size_t *_size)
sb4 __valueSize
Definition OciData.h:21
OciData()
Definition OciData.cpp:48
ub2 __actualLength
Definition OciData.h:25
static const wchar_t * __TYPE_NAME(ub2 _sqlt)
Definition OciData.cpp:924
virtual OciQuery * query() const =0
bool getBytesFromLob(byte_t *_buf, size_t *_size)
Definition OciData.cpp:700
bool getFloat(void *_buf, size_t *_size)
Definition OciData.cpp:319
static size_t __TYPE_ALIGN(size_t _offset, ub2 _sqlt)
Definition OciData.cpp:997
bool onAfterFetch()
Definition OciData.cpp:75
ub4 __dynamicMode
Definition OciData.h:17
bool getDataSize(size_t *_size, bool _maxsize)
Definition OciData.cpp:169
bool getInteger(void *_buf, size_t *_size, SQL::DataType _bufType)
Definition OciData.cpp:291
bool getInterval(SQL::Interval *_buf)
Definition OciData.cpp:527
bool getTimeStamp(SQL::TimeStamp *_buf)
Definition OciData.cpp:441
bool getNumericText(char *_buf, size_t *_size)
Definition OciData.cpp:385
void * __valuePtr
Definition OciData.h:20
size_t __dataSize
Definition OciData.h:30
ub4 __position
Definition OciData.h:16
ub2 __returnCode
Definition OciData.h:26
static ub4 __TYPE_SIZE(ub2 _sqlt, ub4 _size)
Definition OciData.cpp:952
bool getData(void *_buf, size_t *_size, SQL::DataType _bufType)
Definition OciData.cpp:193
ub4 __callbackActualLength
Definition OciData.h:27
size_t __maxDataSize
Definition OciData.h:31
~OciData()
Definition OciData.cpp:67
OciConnection * conn() const
Definition OciData.h:67
ub4 __descType
Definition OciData.h:19
BytesOutputStream * __bytesOutput
Definition OciData.h:29
const wchar_t * serverDataTypeName() const
Definition OciData.cpp:164
bool writeTo(OutputStream *_buf, size_t *_size)
Definition OciData.cpp:642
bool getDate(SQL::Date *_buf, size_t *_size)
DataType
Definition SQLCore.h:59