DCL 4.1
Loading...
Searching...
No Matches
MyField.h
Go to the documentation of this file.
1#ifndef __DCL_MY_FIELD_H__
2#define __DCL_MY_FIELD_H__ 20031025_20250414
3
4__DCL_BEGIN_NAMESPACE
5
6class MyField : public SQL::Field
7{
9protected:
10 unsigned int __index;
11 const MYSQL_FIELD* __field;
12 const MYSQL_BIND* __bind;
13
14 size_t __maxsize;
15
16protected:
17 void setErrorStatus(SQL::Error _error,
18 const wchar_t* _filename, int _line);
19 void setErrorStatus(const ByteString& _message,
20 const wchar_t* _filename, int _line);
21 MyQuery* query() const;
22
23public:
25 virtual ~MyField();
26
27 bool init(SQL::Query* _query, unsigned int _index,
28 MYSQL_FIELD* _field, MYSQL_BIND* _bind);
29
30 // interface
31 virtual bool isNull() const;
32 virtual const wchar_t* serverDataTypeName() const;
33 virtual bool __getDataSize(size_t* _psize, bool _maxsize);
34 virtual bool __getData(void* _pv, size_t* _psize, SQL::DataType _dataType);
35
36protected:
37 // implementation
38 bool getInteger(void* _pv, size_t* _psize);
39 bool getUInteger(void* _pv, size_t* _psize);
40 bool getFloat(void* _pv, size_t* _psize);
41 bool getDate(SQL::Date* _pv, size_t* _psize);
42 bool getTimeStamp(SQL::TimeStamp* _pv, size_t* _psize);
43 bool getTime(SQL::Time* _pv, size_t* _psize);
44 bool getInterval(SQL::Interval* _pv, size_t* _psize);
45};
46
48 const wchar_t* _filename, int _line)
49{
50 ((MyConnection*)Field::connection())->setErrorStatus(
51 _error,
52 _filename,
53 _line
54 );
55}
56
57inline void MyField::setErrorStatus(const ByteString& _message,
58 const wchar_t* _filename, int _line)
59{
60 ((MyConnection*)Field::connection())->setErrorStatus(
61 _message,
62 _filename,
63 _line
64 );
65}
66
67inline MyQuery* MyField::query() const
68{
69 return (MyQuery*)Field::__queryHandle;
70}
71
72const wchar_t* __dataTypeName(enum_field_types _type, unsigned int _flags);
73
74__DCL_END_NAMESPACE
75
76#endif // __DCL_MY_FIELD_H__
const wchar_t * __dataTypeName(enum_field_types _type, unsigned int _flags)
Definition MyField.cpp:224
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
virtual bool isNull() const
Definition MyField.cpp:297
bool getTimeStamp(SQL::TimeStamp *_pv, size_t *_psize)
Definition MyField.cpp:876
bool getTime(SQL::Time *_pv, size_t *_psize)
Definition MyField.cpp:899
bool init(SQL::Query *_query, unsigned int _index, MYSQL_FIELD *_field, MYSQL_BIND *_bind)
Definition MyField.cpp:59
virtual bool __getDataSize(size_t *_psize, bool _maxsize)
Definition MyField.cpp:305
virtual const wchar_t * serverDataTypeName() const
Definition MyField.cpp:292
bool getInterval(SQL::Interval *_pv, size_t *_psize)
Definition MyField.cpp:919
bool getInteger(void *_pv, size_t *_psize)
Definition MyField.cpp:458
MyQuery * query() const
Definition MyField.h:67
bool getDate(SQL::Date *_pv, size_t *_psize)
Definition MyField.cpp:858
bool getUInteger(void *_pv, size_t *_psize)
Definition MyField.cpp:619
bool getFloat(void *_pv, size_t *_psize)
Definition MyField.cpp:780
virtual bool __getData(void *_pv, size_t *_psize, SQL::DataType _dataType)
Definition MyField.cpp:339
virtual ~MyField()
Definition MyField.cpp:54
void setErrorStatus(SQL::Error _error, const wchar_t *_filename, int _line)
Definition MyField.h:47
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19