DCL 4.0
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 OCIBind* __bind;
15
16 union {
17 OCINumber num;
18 void* desc; // OCILoator*, OCIDateTime*
19 } __data;
20
21 sb2 __inputIndicator;
22
23 void* __buffer; // local alloc
24 InputStream* __inputStream;
25
26public:
27 OciQuery* query() const { return (OciQuery*)Param::__queryHandle; }
28// bool writeBlob(); // BLOB support by OciQuery
29 ub2 _dataType() const { return OciData::__dataType; }
30
32 virtual ~OciParam();
33
34 bool init(SQL::Query* _query, ub4 _position);
35 bool doBind();
36 bool onAfterExecute();
37
38protected:
39 // interfaces
40
41 // out bind support
42 virtual bool __setDataType(
44 );
45
46 // Field implementaion
47 virtual bool isNull() const;
48 virtual const wchar_t* serverDataTypeName() const;
49
50 virtual bool __getDataSize(
51 size_t* _size,
52 bool _maxSize
53 );
54 virtual bool __getData(
55 void* _pv,
56 size_t* _size, // IN, OUT
58 );
59
60 // Param implementaion
61 virtual void setNull();
62 virtual bool __setData(
63 _CONST void* _pv,
64 size_t _size,
66 SQL::DataType _assignType
67 );
68
69
70 // implementation
71 bool setTimeStamp(
72 const SQL::TimeStamp* _pv,
73 size_t _size,
74 SQL::DataType _assignType
75 );
76
77 bool setInterval(
78 const SQL::Interval* _pv,
79 size_t _size,
80 SQL::DataType _assignType
81 );
82
83protected:
84 static sb4 CallbackInBind(
85 dvoid *ictxp,
86 OCIBind *bindp,
87 ub4 iter,
88 ub4 index,
89 dvoid **bufpp,
90 ub4 *alenp,
91 ub1 *piecep,
92 dvoid **indpp
93 );
94
95 static sb4 CallbackOutBind(
96 dvoid *octxp,
97 OCIBind *bindp,
98 ub4 iter,
99 ub4 index,
100 dvoid **bufpp,
101 ub4 **alenpp,
102 ub1 *piecep,
103 dvoid **indpp,
104 ub2 **rcodepp
105 );
106
108 OCIBind* pBind,
109 ub4 nIterator,
110 ub4 _index,
111 dvoid** ppvBuffer,
112 ub4* pnActualLength,
113 ub1* pnPiece,
114 dvoid** ppvIndicator
115 );
116
118 OCIBind* pBind,
119 ub4 nIterator,
120 ub4 _index,
121 dvoid** ppvBuffer,
122 ub4** ppnActualLength,
123 ub1* pnPiece,
124 dvoid** ppvIndicator,
125 ub2** ppnReturnCode
126 );
127};
128
129__DCL_END_NAMESPACE
130
131#endif // __DCL_OCI_PARAM_H__
#define _CONST
Definition Config.h:353
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
ub2 __dataType
Definition OciData.h:21
OciData()
Definition OciData.cpp:47
virtual bool __getDataSize(size_t *_size, bool _maxSize)
Definition OciParam.cpp:264
bool setTimeStamp(const SQL::TimeStamp *_pv, size_t _size, SQL::DataType _assignType)
Definition OciParam.cpp:555
sb4 onCallbackInBind(OCIBind *pBind, ub4 nIterator, ub4 _index, dvoid **ppvBuffer, ub4 *pnActualLength, ub1 *pnPiece, dvoid **ppvIndicator)
Definition OciParam.cpp:835
virtual bool isNull() const
Definition OciParam.cpp:254
static sb4 CallbackInBind(dvoid *ictxp, OCIBind *bindp, ub4 iter, ub4 index, dvoid **bufpp, ub4 *alenp, ub1 *piecep, dvoid **indpp)
Definition OciParam.cpp:784
bool init(SQL::Query *_query, ub4 _position)
Definition OciParam.cpp:79
void * desc
Definition OciParam.h:18
virtual bool __setDataType(SQL::DataType _dataType)
Definition OciParam.cpp:100
sb4 onCallbackOutBind(OCIBind *pBind, ub4 nIterator, ub4 _index, dvoid **ppvBuffer, ub4 **ppnActualLength, ub1 *pnPiece, dvoid **ppvIndicator, ub2 **ppnReturnCode)
Definition OciParam.cpp:935
virtual bool __getData(void *_pv, size_t *_size, SQL::DataType _dataType)
Definition OciParam.cpp:272
virtual void setNull()
Definition OciParam.cpp:281
virtual bool __setData(_CONST void *_pv, size_t _size, SQL::DataType _dataType, SQL::DataType _assignType)
Definition OciParam.cpp:292
OciQuery * query() const
Definition OciParam.h:27
OCINumber num
Definition OciParam.h:17
bool setInterval(const SQL::Interval *_pv, size_t _size, SQL::DataType _assignType)
Definition OciParam.cpp:630
virtual const wchar_t * serverDataTypeName() const
Definition OciParam.cpp:259
bool onAfterExecute()
Definition OciParam.cpp:90
static sb4 CallbackOutBind(dvoid *octxp, OCIBind *bindp, ub4 iter, ub4 index, dvoid **bufpp, ub4 **alenpp, ub1 *piecep, dvoid **indpp, ub2 **rcodepp)
Definition OciParam.cpp:806
virtual ~OciParam()
Definition OciParam.cpp:61
bool doBind()
Definition OciParam.cpp:728
ub2 _dataType() const
Definition OciParam.h:29
DataType
Definition SQLCore.h:62