DCL 3.7.4
Loading...
Searching...
No Matches
OciParam.h
Go to the documentation of this file.
1#ifndef __DCL_OCI_PARAM_H__
2#define __DCL_OCI_PARAM_H__ 20020321
3
4#include "OciData.h"
5
6__DCL_BEGIN_NAMESPACE
7
8class InputStream;
9
10class OciParam : public SQL::Param, public OciData
11{
13protected:
14
15 union {
16 OCINumber number;
17 OCIDate date;
18 void* desc; // OCILobLoator*, OCIDateTime*
19 } __data;
20
21 // inbindCallback에서 __inputStream과
22 // outbindCallback에서 OciData::__bytesOutput과 사용된다.
23 // 이것의 크기는 __DYNAMIC_BUFFER_SIZE이다.
24 void* __buffer;
25
26 sb2 __inputIndicator;
27 InputStream* __inputStream;
28 void* __inputValue;
29
30 virtual OciQuery* query() const;
31
32public:
33// bool writeBlob(); // BLOB support by OciQuery
34 ub2 dataType() const { return OciData::__valueType; }
35
37 virtual ~OciParam();
38
39 bool init(SQL::Query* _query, ub4 _position);
40 bool doBind();
41 bool onAfterExecute();
42
43protected:
44 // interfaces
45
46 // Field implementaion
47 virtual const wchar_t* serverDataTypeName() const;
48
49 virtual bool __getDataSize(
50 size_t* _size,
51 bool _maxsize
52 );
53
54 virtual bool __getData(
55 void* _buf, // data, OUT
56 size_t* _size, // sizeof *_buf, IN OUT
57 SQL::DataType _bufType
58 );
59
60 // Param implementaion
61
62 // output parameter support
63 virtual bool __setOutputType(
64 SQL::DataType _sqlType
65 );
66
67 virtual void setNull();
68
69 virtual bool __setData(
70 _CONST void* _val,
71 size_t _size,
72 SQL::DataType _valType,
73 SQL::DataType _sqlType
74 );
75
76 // implementation
77 bool setTimeStamp(
78 const SQL::TimeStamp* _val,
79 size_t _size,
80 SQL::DataType _sqlType
81 );
82
83 bool setInterval(
84 const SQL::Interval* _val,
85 size_t _size,
86 SQL::DataType _sqlType
87 );
88
89protected:
90 static sb4 inbindCallback(
91 dvoid* _ictxp,
92 OCIBind* _bindp,
93 ub4 _iter,
94 ub4 _index,
95 dvoid** _bufpp,
96 ub4* _alenp,
97 ub1* _piecep,
98 dvoid** _indpp
99 );
100
101 static sb4 outbindCallback(
102 dvoid* _octxp,
103 OCIBind* _bindp,
104 ub4 _iter,
105 ub4 _index,
106 dvoid** _bufpp,
107 ub4** _alenpp,
108 ub1* _piecep,
109 dvoid** _indpp,
110 ub2** _rcodepp
111 );
112
113 sb4 inbindCallback(
114 OCIBind* _bindp,
115 ub4 _iter,
116 ub4 _index,
117 dvoid** _bufpp,
118 ub4* _alenp,
119 ub1* _piecep,
120 dvoid** _indpp
121 );
122
123 sb4 outbindCallback(
124 OCIBind* _bindp,
125 ub4 _iter,
126 ub4 _index,
127 dvoid** _bufpp,
128 ub4** _alenpp,
129 ub1* _piecep,
130 dvoid** _indpp,
131 ub2** _rcodepp
132 );
133};
134
135__DCL_END_NAMESPACE
136
137#endif // __DCL_OCI_PARAM_H__
#define _CONST
Definition Config.h:325
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:227
ub2 __valueType
Definition OciData.h:22
OciData()
Definition OciData.cpp:48
virtual OciQuery * query() const =0
ub2 dataType() const
Definition OciParam.h:34
static sb4 inbindCallback(dvoid *_ictxp, OCIBind *_bindp, ub4 _iter, ub4 _index, dvoid **_bufpp, ub4 *_alenp, ub1 *_piecep, dvoid **_indpp)
Definition OciParam.cpp:876
bool init(SQL::Query *_query, ub4 _position)
Definition OciParam.cpp:87
virtual bool __setData(_CONST void *_val, size_t _size, SQL::DataType _valType, SQL::DataType _sqlType)
Definition OciParam.cpp:361
static sb4 outbindCallback(dvoid *_octxp, OCIBind *_bindp, ub4 _iter, ub4 _index, dvoid **_bufpp, ub4 **_alenpp, ub1 *_piecep, dvoid **_indpp, ub2 **_rcodepp)
Definition OciParam.cpp:898
virtual void setNull()
Definition OciParam.cpp:350
virtual bool __setOutputType(SQL::DataType _sqlType)
Definition OciParam.cpp:197
virtual const wchar_t * serverDataTypeName() const
Definition OciParam.cpp:177
bool setInterval(const SQL::Interval *_val, size_t _size, SQL::DataType _sqlType)
Definition OciParam.cpp:731
bool onAfterExecute()
Definition OciParam.cpp:96
virtual bool __getData(void *_buf, size_t *_size, SQL::DataType _bufType)
Definition OciParam.cpp:187
virtual bool __getDataSize(size_t *_size, bool _maxsize)
Definition OciParam.cpp:182
virtual ~OciParam()
Definition OciParam.cpp:63
bool setTimeStamp(const SQL::TimeStamp *_val, size_t _size, SQL::DataType _sqlType)
Definition OciParam.cpp:663
bool doBind()
Definition OciParam.cpp:822
DataType
Definition SQLCore.h:59