DCL 4.0
Loading...
Searching...
No Matches
IFXField.h
Go to the documentation of this file.
1#ifndef __DCL_INFORMIX_FIELD_H__
2#define __DCL_INFORMIX_FIELD_H__ 20030717
3
4__DCL_BEGIN_NAMESPACE
5
6#define __USE_IFX_VAR 0
7
8class IFXField : public SQL::Field
9{
11protected:
12 ifx_sqlvar_t* __sqlvar;
13 short int __indicator;
14
15 size_t __maxDataSize;
16 size_t __dataSize; // for SQLDECIMAL, SQLVCHAR, SQLNCHAR
17
18protected:
19 void setErrorStatus(SQL::Error _error, long _SQLCODE,
20 const wchar_t* _filename, int _line);
21 void setErrorStatus(const ByteString& _message,
22 const wchar_t* _filename, int _line);
23
24 IFXQuery* query() const;
25
26public:
28 virtual ~IFXField();
29
30 bool init(SQL::Query* _query, ifx_sqlvar_t* _sqlvar);
31 bool onAfterFetch();
32
33 // interfaces
34 virtual bool isNull() const;
35 virtual const wchar_t* serverDataTypeName() const;
36 virtual bool __getDataSize(size_t* _size, bool _maxSize);
37 virtual bool __getData(void* _pv, size_t* _size, SQL::DataType _dataType);
38
39protected:
40 // implementation
41 bool getInteger(void* _pv, size_t* _size);
42 bool getUInteger(void* _pv, size_t* _size);
43 bool getFloat(void* _pv, size_t* _size);
44};
45
46
47inline void IFXField::setErrorStatus(SQL::Error _error, long _SQLCODE,
48 const wchar_t* _filename, int _line)
49{
50 ((IFXConnection*)Field::connection())->setErrorStatus(
51 _error,
52 _SQLCODE,
53 _filename,
54 _line
55 );
56}
57
58inline void IFXField::setErrorStatus(const ByteString& _message,
59 const wchar_t* _filename, int _line)
60{
61 ((IFXConnection*)Field::connection())->setErrorStatus(
62 _message,
63 _filename,
64 _line
65 );
66}
67
68inline IFXQuery* IFXField::query() const
69{
70 return (IFXQuery*)Field::__queryHandle;
71}
72
73__DCL_END_NAMESPACE
74
75#endif // __DCL_INTERBASE_FIELD_H__
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
virtual bool isNull() const
Definition IFXField.cpp:337
virtual bool __getData(void *_pv, size_t *_size, SQL::DataType _dataType)
Definition IFXField.cpp:384
bool onAfterFetch()
Definition IFXField.cpp:230
IFXQuery * query() const
Definition IFXField.h:68
bool getFloat(void *_pv, size_t *_size)
Definition IFXField.cpp:925
void setErrorStatus(SQL::Error _error, long _SQLCODE, const wchar_t *_filename, int _line)
Definition IFXField.h:47
bool getUInteger(void *_pv, size_t *_size)
Definition IFXField.cpp:784
bool getInteger(void *_pv, size_t *_size)
Definition IFXField.cpp:643
virtual const wchar_t * serverDataTypeName() const
Definition IFXField.cpp:332
virtual bool __getDataSize(size_t *_size, bool _maxSize)
Definition IFXField.cpp:345
virtual ~IFXField()
Definition IFXField.cpp:63
bool init(SQL::Query *_query, ifx_sqlvar_t *_sqlvar)
Definition IFXField.cpp:81
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19