DCL 4.0
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:
17 ub4 __position; // 1, 2, ...
18 ub4 __descType; // 0, OCI_DTYPE_XXX, OCI_DTYPE_FILE, ...
19 ub4 __dynamicMode; // OCI_DEFAULT, OCI_DYNAMIC_FETCH, OCI_DATA_AT_EXEC
20
21 ub2 __dataType; // Define, Bind datatype, SQLT_XXX
22 void* __value; // or DataBuffer
23 sb4 __valueSize; // or BufferSize
24 sb2 __indicator; // null(-1), not null(0)
28
29 BytesOutputStream* __bytesOutput; // for OCI_DYNAMIC_FETCH or OutBind of 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 OciConnection* conn() const;
38
39 OciData();
40 ~OciData();
41
42 bool isInteger() const;
43
44 bool getDataSize(size_t* _size, bool _maxSize);
45 bool getData(void* _pv, size_t* _size, SQL::DataType _dataType);
46
47 bool getInteger(void* _pv, size_t* _size, SQL::DataType _dataType);
48 bool getFloat(void* _pv, size_t* _size);
49 bool getNumericText(char* _pv, size_t* _size);
50 bool getTimeStamp(SQL::TimeStamp* _pv, size_t* _size);
51 bool getInterval(SQL::Interval* _pv, size_t* _size);
52 bool getBytes(byte_t* _pv, size_t* _size);
53 bool writeTo(OutputStream* _pv, size_t* _size);
54
55 bool getBytesFromLob(byte_t* _pv, size_t* _size);
56 bool writeToFromLob(OutputStream* _pv, size_t* _size);
57
58 static const wchar_t* dataTypeName(ub2 _dataType);
59};
60
61#ifndef __DCL_DEBUG
63{
64 return __queryHandle->conn();
65}
66#endif
67
68__DCL_END_NAMESPACE
69
70#endif // __DCL_OCI_DATA__
unsigned char byte_t
Definition Config.h:274
sb2 __indicator
Definition OciData.h:24
bool getData(void *_pv, size_t *_size, SQL::DataType _dataType)
Definition OciData.cpp:202
bool getBytesFromLob(byte_t *_pv, size_t *_size)
Definition OciData.cpp:653
bool isInteger() const
ub2 __dataType
Definition OciData.h:21
sb4 __valueSize
Definition OciData.h:23
OciData()
Definition OciData.cpp:47
ub2 __actualLength
Definition OciData.h:25
OciQuery * __queryHandle
Definition OciData.h:16
bool getInteger(void *_pv, size_t *_size, SQL::DataType _dataType)
Definition OciData.cpp:273
bool onAfterFetch()
Definition OciData.cpp:83
bool getInterval(SQL::Interval *_pv, size_t *_size)
Definition OciData.cpp:481
ub4 __dynamicMode
Definition OciData.h:19
static const wchar_t * dataTypeName(ub2 _dataType)
Definition OciData.cpp:844
bool getNumericText(char *_pv, size_t *_size)
Definition OciData.cpp:331
bool getBytes(byte_t *_pv, size_t *_size)
Definition OciData.cpp:541
bool getDataSize(size_t *_size, bool _maxSize)
Definition OciData.cpp:172
bool getFloat(void *_pv, size_t *_size)
Definition OciData.cpp:302
bool getTimeStamp(SQL::TimeStamp *_pv, size_t *_size)
Definition OciData.cpp:389
size_t __dataSize
Definition OciData.h:30
ub4 __position
Definition OciData.h:17
ub2 __returnCode
Definition OciData.h:27
bool writeToFromLob(OutputStream *_pv, size_t *_size)
Definition OciData.cpp:743
ub4 __callbackActualLength
Definition OciData.h:26
size_t __maxDataSize
Definition OciData.h:31
~OciData()
Definition OciData.cpp:67
OciConnection * conn() const
Definition OciData.h:62
ub4 __descType
Definition OciData.h:18
void * __value
Definition OciData.h:22
bool writeTo(OutputStream *_pv, size_t *_size)
Definition OciData.cpp:598
BytesOutputStream * __bytesOutput
Definition OciData.h:29
DataType
Definition SQLCore.h:62