DCL 4.1
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 getDate(SQL::Date* _pv, size_t* _size);
51 bool getTime(SQL::Time* _pv, size_t* _size);
53 bool getInterval(SQL::Interval* _pv);
54 bool getBytes(byte_t* _pv, size_t* _size);
55 bool writeTo(OutputStream* _pv, size_t* _size);
56
57 bool getBytesFromLob(byte_t* _pv, size_t* _size);
58 bool writeToFromLob(OutputStream* _pv, size_t* _size);
59
60 static const wchar_t* dataTypeName(ub2 _dataType);
61};
62
63#ifndef __DCL_DEBUG
65{
66 return __queryHandle->conn();
67}
68#endif
69
70__DCL_END_NAMESPACE
71
72#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:681
bool isInteger() const
ub2 __dataType
Definition OciData.h:21
sb4 __valueSize
Definition OciData.h:23
OciData()
Definition OciData.cpp:47
bool getInterval(SQL::Interval *_pv)
Definition OciData.cpp:509
bool getTimeStamp(SQL::TimeStamp *_pv)
Definition OciData.cpp:418
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:302
bool onAfterFetch()
Definition OciData.cpp:83
ub4 __dynamicMode
Definition OciData.h:19
bool getDate(SQL::Date *_pv, size_t *_size)
static const wchar_t * dataTypeName(ub2 _dataType)
Definition OciData.cpp:872
bool getNumericText(char *_pv, size_t *_size)
Definition OciData.cpp:360
bool getBytes(byte_t *_pv, size_t *_size)
Definition OciData.cpp:569
bool getDataSize(size_t *_size, bool _maxSize)
Definition OciData.cpp:172
bool getFloat(void *_pv, size_t *_size)
Definition OciData.cpp:331
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:771
ub4 __callbackActualLength
Definition OciData.h:26
size_t __maxDataSize
Definition OciData.h:31
~OciData()
Definition OciData.cpp:67
OciConnection * conn() const
Definition OciData.h:64
bool getTime(SQL::Time *_pv, size_t *_size)
ub4 __descType
Definition OciData.h:18
void * __value
Definition OciData.h:22
bool writeTo(OutputStream *_pv, size_t *_size)
Definition OciData.cpp:626
BytesOutputStream * __bytesOutput
Definition OciData.h:29
DataType
Definition SQLCore.h:62