DCL 3.7.4
Loading...
Searching...
No Matches
IFXField.h
Go to the documentation of this file.
1#ifndef __DCL_IFX_FIELD_H__
2#define __DCL_IFX_FIELD_H__ 20030717
3
4__DCL_BEGIN_NAMESPACE
5
6class IFXField : public SQL::Field
7{
9protected:
10 ifx_sqlvar_t* __sqlvar;
11 short int __indicator;
12
13 size_t __maxDataSize;
14 size_t __dataSize; // for SQLDECIMAL, SQLVCHAR, SQLNCHAR
15
16protected:
17 IFXQuery* query() const;
18 IFXConnection* conn() const;
19
20public:
22 virtual ~IFXField();
23
24 bool init(SQL::Query* _query, ifx_sqlvar_t* _sqlvar);
25 bool onAfterFetch();
26
27 // interfaces
28 virtual const wchar_t* serverDataTypeName() const;
29 virtual bool __getDataSize(size_t* _size, bool _maxsize);
30
31 virtual bool __getData(
32 void* _buf,
33 size_t* _size,
34 SQL::DataType _bufType
35 );
36
37protected:
38 // implementation
39 bool getInteger(void* _buf, size_t* _size);
40 bool getUInteger(void* _buf, size_t* _size);
41 bool getFloat(void* _buf, size_t* _size);
42};
43
44inline IFXQuery* IFXField::query() const
45{
46 return (IFXQuery*)Field::__queryHandle;
47}
48
50{
51 return query()->conn();
52}
53
54__DCL_END_NAMESPACE
55
56#endif // __DCL_IFX_FIELD_H__
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:227
bool getInteger(void *_buf, size_t *_size)
Definition IFXField.cpp:635
bool getFloat(void *_buf, size_t *_size)
Definition IFXField.cpp:969
bool onAfterFetch()
Definition IFXField.cpp:242
IFXQuery * query() const
Definition IFXField.h:44
IFXConnection * conn() const
Definition IFXField.h:49
virtual bool __getDataSize(size_t *_size, bool _maxsize)
Definition IFXField.cpp:350
virtual bool __getData(void *_buf, size_t *_size, SQL::DataType _bufType)
Definition IFXField.cpp:384
virtual const wchar_t * serverDataTypeName() const
Definition IFXField.cpp:345
virtual ~IFXField()
Definition IFXField.cpp:70
bool getUInteger(void *_buf, size_t *_size)
Definition IFXField.cpp:802
bool init(SQL::Query *_query, ifx_sqlvar_t *_sqlvar)
Definition IFXField.cpp:88
DataType
Definition SQLCore.h:59