DCL 4.0
Loading...
Searching...
No Matches
IFXParam.h
Go to the documentation of this file.
1#ifndef __DCL_INFORMIX_PARAM_H__
2#define __DCL_INFORMIX_PARAM_H__ 20030717
3
4__DCL_BEGIN_NAMESPACE
5
6class IFXParam : public SQL::Param
7{
9protected:
10 int2 __sqltype; // saved __sqlvar->sqltype
11 int4 __sqllen; // saved __sqlvar->sqllen
12 ifx_sqlvar_t* __sqlvar;
13 short __indicator;
14 union {
15 int32_t i32;
16 int64_t i64;
17 float f32;
18 double f64;
19 dec_t dec;
20 int4 date;
21 dtime_t dtime;
22 intrvl_t ival;
23 loc_t loc;
24 } __data;
25
26protected:
27 void setErrorStatus(SQL::Error _error, long _SQLCODE,
28 const wchar_t* _filename, int _line);
29 void setErrorStatus(const ByteString& _message,
30 const wchar_t* _filename, int _line);
31
32 IFXQuery* query() const;
33
34public:
35 bool init(SQL::Query* _query, ifx_sqlvar_t* _sqlvar);
36 bool onAfterExecute();
37
39 virtual ~IFXParam();
40
41 // interfaces
42 virtual const wchar_t* serverDataTypeName() const;
43 virtual void setNull();
44 virtual bool __setData(
45 _CONST void* _pv,
46 size_t _size,
47 SQL::DataType _dataType,
48 SQL::DataType _assignType
49 );
50
51 // implementation
52 bool setInteger(const void* _pv, size_t _size);
53 bool setUInteger(const void* _pv, size_t _size);
54 bool setBytes(const void* _pv, size_t _size,
55 SQL::DataType _assignType);
56 bool setInputStream(const void* _pv, size_t _size,
57 SQL::DataType _assignType);
58};
59
60inline void IFXParam::setErrorStatus(SQL::Error _error, long _SQLCODE,
61 const wchar_t* _filename, int _line)
62{
63 ((IFXConnection*)Param::connection())->setErrorStatus(
64 _error,
65 _SQLCODE,
66 _filename,
67 _line
68 );
69}
70
71inline void IFXParam::setErrorStatus(const ByteString& _message,
72 const wchar_t* _filename, int _line)
73{
74 ((IFXConnection*)Param::connection())->setErrorStatus(
75 _message,
76 _filename,
77 _line
78 );
79}
80
82{
83 return (IFXQuery*)Param::__queryHandle;
84}
85
86__DCL_END_NAMESPACE
87
88#endif // __DCL_INFORMIX_PARAM_H__
#define _CONST
Definition Config.h:353
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
double f64
Definition IFXParam.h:18
loc_t loc
Definition IFXParam.h:23
int32_t i32
Definition IFXParam.h:15
bool init(SQL::Query *_query, ifx_sqlvar_t *_sqlvar)
Definition IFXParam.cpp:59
int4 date
Definition IFXParam.h:20
dec_t dec
Definition IFXParam.h:19
bool setBytes(const void *_pv, size_t _size, SQL::DataType _assignType)
Definition IFXParam.cpp:396
IFXQuery * query() const
Definition IFXParam.h:81
intrvl_t ival
Definition IFXParam.h:22
bool onAfterExecute()
Definition IFXParam.cpp:75
void setErrorStatus(SQL::Error _error, long _SQLCODE, const wchar_t *_filename, int _line)
Definition IFXParam.h:60
bool setInteger(const void *_pv, size_t _size)
Definition IFXParam.cpp:276
virtual bool __setData(_CONST void *_pv, size_t _size, SQL::DataType _dataType, SQL::DataType _assignType)
Definition IFXParam.cpp:109
int64_t i64
Definition IFXParam.h:16
virtual ~IFXParam()
Definition IFXParam.cpp:55
virtual const wchar_t * serverDataTypeName() const
Definition IFXParam.cpp:96
bool setUInteger(const void *_pv, size_t _size)
Definition IFXParam.cpp:312
bool setInputStream(const void *_pv, size_t _size, SQL::DataType _assignType)
Definition IFXParam.cpp:469
dtime_t dtime
Definition IFXParam.h:21
float f32
Definition IFXParam.h:17
virtual void setNull()
Definition IFXParam.cpp:102
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19