DCL 3.7.4
Loading...
Searching...
No Matches
IBParam.h
Go to the documentation of this file.
1#ifndef __DCL_IB_PARAM_H__
2#define __DCL_IB_PARAM_H__ 20020321
3
4__DCL_BEGIN_NAMESPACE
5
6class InputStream;
7
8class IBParam : public SQL::Param
9{
11protected:
12 XSQLVAR* __sqlvar;
13 short __indicator;
14 short __sqltype; // original of __sqlvar->sqltype
15 union {
16 int16_t i16;
17 int32_t i32;
18 int64_t i64;
19 float f32;
20 double f64;
21 ISC_DATE date;
22 ISC_TIME time;
23 ISC_TIMESTAMP ts;
24#if defined(FIREBIRD_IBASE_H) && FB_API_VER >= 40
25 ISC_TIME_TZ_EX time_tz;
26 ISC_TIMESTAMP_TZ_EX ts_tz;
27#endif
28 ISC_QUAD blob_id;
29 } __data;
30
31protected:
32 IBQuery* query() const;
33 IBConnection* conn() const;
34
35public:
36 bool init(SQL::Query* _query, XSQLVAR* _sqlvar);
37 void onAfterExecute();
38
40 virtual ~IBParam();
41
42protected:
43 // interfaces
44 virtual const wchar_t* serverDataTypeName() const;
45 virtual void setNull();
46
47 virtual bool __setData(
48 _CONST void* _val,
49 size_t _size,
50 SQL::DataType _valType,
51 SQL::DataType _sqlType
52 );
53
54 // implementation
55 bool setInteger(const void* _val, size_t _size);
56 bool setUInteger(const void* _val, size_t _size);
57 bool setFloat(const void* _val, size_t _size);
58 bool setDate(const SQL::Date* _val, size_t _size);
59 bool setTime(const SQL::Time* _val, size_t _size);
60 bool setTimeStamp(const SQL::TimeStamp* _val, size_t _size);
61
62 bool setBytesToBlob(const byte_t* _val, size_t _size);
63 bool setInputStreamToBlob(_CONST InputStream* _input, size_t _size);
64 bool cancelBlob();
65};
66
67inline IBQuery* IBParam::query() const
68{
69 return (IBQuery*)Param::__queryHandle;
70}
71
73{
74 return query()->conn();
75}
76
77__DCL_END_NAMESPACE
78
79#endif // __DCL_IB_PARAM_H__
unsigned char byte_t
Definition Config.h:246
#define _CONST
Definition Config.h:325
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:227
IBConnection * conn() const
Definition IBParam.h:72
bool cancelBlob()
Definition IBParam.cpp:456
virtual const wchar_t * serverDataTypeName() const
Definition IBParam.cpp:77
virtual void setNull()
Definition IBParam.cpp:82
void onAfterExecute()
Definition IBParam.cpp:67
float f32
Definition IBParam.h:19
bool setTimeStamp(const SQL::TimeStamp *_val, size_t _size)
Definition IBParam.cpp:300
bool init(SQL::Query *_query, XSQLVAR *_sqlvar)
Definition IBParam.cpp:50
bool setTime(const SQL::Time *_val, size_t _size)
Definition IBParam.cpp:271
virtual ~IBParam()
Definition IBParam.cpp:43
bool setInputStreamToBlob(_CONST InputStream *_input, size_t _size)
Definition IBParam.cpp:384
bool setUInteger(const void *_val, size_t _size)
Definition IBParam.cpp:197
int64_t i64
Definition IBParam.h:18
ISC_TIME time
Definition IBParam.h:22
ISC_TIMESTAMP ts
Definition IBParam.h:23
IBQuery * query() const
Definition IBParam.h:67
bool setInteger(const void *_val, size_t _size)
Definition IBParam.cpp:167
bool setFloat(const void *_val, size_t _size)
Definition IBParam.cpp:227
bool setBytesToBlob(const byte_t *_val, size_t _size)
Definition IBParam.cpp:337
ISC_DATE date
Definition IBParam.h:21
int16_t i16
Definition IBParam.h:16
virtual bool __setData(_CONST void *_val, size_t _size, SQL::DataType _valType, SQL::DataType _sqlType)
Definition IBParam.cpp:93
double f64
Definition IBParam.h:20
ISC_QUAD blob_id
Definition IBParam.h:28
bool setDate(const SQL::Date *_val, size_t _size)
Definition IBParam.cpp:251
int32_t i32
Definition IBParam.h:17
DataType
Definition SQLCore.h:59