DCL 4.0
Loading...
Searching...
No Matches
IBParam.h
Go to the documentation of this file.
1#ifndef __DCL_INTERBASE_PARAM_H__
2#define __DCL_INTERBASE_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 ISC_QUAD blob_id;
25 } __data;
26
27protected:
28 void setErrorStatus(SQL::Error _error,
29 const wchar_t* _filename, int _line);
30 void setErrorStatus(const ByteString& _message,
31 const wchar_t* _filename, int _line);
32
33 IBQuery* query() 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
46 virtual void setNull();
47 virtual bool __setData(
48 _CONST void* _pv,
49 size_t _size,
50 SQL::DataType _dataType,
51 SQL::DataType _assignType
52 );
53
54 // implementation
55 bool setInteger(const void* _pv, size_t _size);
56 bool setUInteger(const void* _pv, size_t _size);
57 bool setFloat(const void* _pv, size_t _size);
58 bool setDate(const SQL::Date* p, size_t _size);
59 bool setTime(const SQL::Time* p, size_t _size);
60 bool setTimeStamp(const SQL::TimeStamp* p, size_t _size);
61
62 bool setBytesToBlob(const byte_t* p, size_t _size);
63 bool setInputStreamToBlob(_CONST InputStream* pInput, size_t _size);
64 bool cancelBlob();
65};
66
68 const wchar_t* _filename, int _line)
69{
70 ((IBConnection*)Param::connection())
71 ->setErrorStatus(_error, _filename, _line);
72}
73
74inline void IBParam::setErrorStatus(const ByteString& _message,
75 const wchar_t* _filename, int _line)
76{
77 ((IBConnection*)Param::connection())
78 ->setErrorStatus(_message, _filename, _line);
79}
80
81inline IBQuery* IBParam::query() const
82{
83 return (IBQuery*)Param::__queryHandle;
84}
85
86__DCL_END_NAMESPACE
87
88#endif // __DCL_INTERBASE_PARAM_H__
89
90
unsigned char byte_t
Definition Config.h:274
#define _CONST
Definition Config.h:353
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
bool cancelBlob()
Definition IBParam.cpp:446
bool setBytesToBlob(const byte_t *p, size_t _size)
Definition IBParam.cpp:321
virtual const wchar_t * serverDataTypeName() const
Definition IBParam.cpp:72
virtual void setNull()
Definition IBParam.cpp:77
void onAfterExecute()
Definition IBParam.cpp:62
bool setTimeStamp(const SQL::TimeStamp *p, size_t _size)
Definition IBParam.cpp:292
float f32
Definition IBParam.h:19
bool init(SQL::Query *_query, XSQLVAR *_sqlvar)
Definition IBParam.cpp:45
bool setFloat(const void *_pv, size_t _size)
Definition IBParam.cpp:227
bool setUInteger(const void *_pv, size_t _size)
Definition IBParam.cpp:197
bool setDate(const SQL::Date *p, size_t _size)
Definition IBParam.cpp:251
virtual ~IBParam()
Definition IBParam.cpp:38
bool setTime(const SQL::Time *p, size_t _size)
Definition IBParam.cpp:271
int64_t i64
Definition IBParam.h:18
bool setInputStreamToBlob(_CONST InputStream *pInput, size_t _size)
Definition IBParam.cpp:370
ISC_TIME time
Definition IBParam.h:22
ISC_TIMESTAMP ts
Definition IBParam.h:23
IBQuery * query() const
Definition IBParam.h:81
void setErrorStatus(SQL::Error _error, const wchar_t *_filename, int _line)
Definition IBParam.h:67
bool setInteger(const void *_pv, size_t _size)
Definition IBParam.cpp:167
ISC_DATE date
Definition IBParam.h:21
int16_t i16
Definition IBParam.h:16
double f64
Definition IBParam.h:20
ISC_QUAD blob_id
Definition IBParam.h:24
virtual bool __setData(_CONST void *_pv, size_t _size, SQL::DataType _dataType, SQL::DataType _assignType)
Definition IBParam.cpp:88
int32_t i32
Definition IBParam.h:17
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19