DCL 4.0
Loading...
Searching...
No Matches
PgField.h
Go to the documentation of this file.
1#ifndef __DCL_PG_FIELD_H__
2#define __DCL_PG_FIELD_H__ 20250403
3
4__DCL_BEGIN_NAMESPACE
5
6class PgField : public SQL::Field
7{
9protected:
10 sqlvar_t* __sqlvar;
11 size_t __maxDataSize;
12
13protected:
14 void setErrorStatus(SQL::Error _error, long _SQLCODE,
15 const wchar_t* _filename, int _line);
16 void setErrorStatus(const ByteString& _message,
17 const wchar_t* _filename, int _line);
18
19 PgQuery* query() const;
20
21public:
23 virtual ~PgField();
24
25 bool init(SQL::Query* _query, sqlvar_t* _sqlvar);
26 bool onAfterFetch(sqlvar_t* _sqlvar);
27
28 // interfaces
29 virtual bool isNull() const;
30 virtual const wchar_t* serverDataTypeName() const;
31 virtual bool __getDataSize(size_t* _size, bool _maxSize);
32 virtual bool __getData(void* _pv, size_t* _size, SQL::DataType _dataType);
33
34protected:
35 // implementation
36 bool getInteger(void* _pv, size_t* _size);
37 bool getUInteger(void* _pv, size_t* _size);
38 bool getFloat(void* _pv, size_t* _size);
39};
40
41
42inline void PgField::setErrorStatus(SQL::Error _error, long _SQLCODE,
43 const wchar_t* _filename, int _line)
44{
45 ((PgConnection*)Field::connection())->setErrorStatus(
46 _error,
47 _SQLCODE,
48 _filename,
49 _line
50 );
51}
52
53inline void PgField::setErrorStatus(const ByteString& _message,
54 const wchar_t* _filename, int _line)
55{
56 ((PgConnection*)Field::connection())->setErrorStatus(
57 _message,
58 _filename,
59 _line
60 );
61}
62
63inline PgQuery* PgField::query() const
64{
65 return (PgQuery*)Field::__queryHandle;
66}
67
68
69__DCL_END_NAMESPACE
70
71#endif // __DCL_INTERBASE_FIELD_H__
72
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
bool onAfterFetch(sqlvar_t *_sqlvar)
Definition PgField.cpp:175
bool getInteger(void *_pv, size_t *_size)
Definition PgField.cpp:418
virtual bool __getDataSize(size_t *_size, bool _maxSize)
Definition PgField.cpp:236
bool getUInteger(void *_pv, size_t *_size)
Definition PgField.cpp:593
bool getFloat(void *_pv, size_t *_size)
Definition PgField.cpp:773
void setErrorStatus(SQL::Error _error, long _SQLCODE, const wchar_t *_filename, int _line)
Definition PgField.h:42
bool init(SQL::Query *_query, sqlvar_t *_sqlvar)
Definition PgField.cpp:49
virtual bool __getData(void *_pv, size_t *_size, SQL::DataType _dataType)
Definition PgField.cpp:270
virtual const wchar_t * serverDataTypeName() const
Definition PgField.cpp:222
virtual ~PgField()
Definition PgField.cpp:44
PgQuery * query() const
Definition PgField.h:63
virtual bool isNull() const
Definition PgField.cpp:227
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19