DCL 4.0
Loading...
Searching...
No Matches
IBField.h
Go to the documentation of this file.
1#ifndef __DCL_INTERBASE_FIELD_H__
2#define __DCL_INTERBASE_FIELD_H__ 20020321
3
4__DCL_BEGIN_NAMESPACE
5
6class IBField : public SQL::Field
7{
9protected:
10 XSQLVAR* __sqlvar;
11 short __indicator;
12
13 size_t __maxDataSize;
14 size_t __dataSize; // for BLOB
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
22 IBQuery* query() const;
23
24public:
26 virtual ~IBField();
27
28 bool init(SQL::Query* _query, XSQLVAR* _sqlvar);
29 bool onAfterFetch();
30
31 // interfaces
32 virtual bool isNull() const;
33 virtual const wchar_t* serverDataTypeName() const;
34 virtual bool __getDataSize(size_t* _size, bool _maxSize);
35 virtual bool __getData(void* _pv, size_t* _size, SQL::DataType _dataType);
36
37protected:
38 // implementation
39 bool getInteger(void* _pv, size_t* _size);
40 bool getUInteger(void* _pv, size_t* _size);
41 bool getFloat(void* _pv, size_t* _size);
42 bool getDate(SQL::Date* p, size_t* _size);
43 bool getTime(SQL::Time* p, size_t* _size);
44 bool getTimeStamp(SQL::TimeStamp* p, size_t* _size);
45 bool getDecimal(char* p, size_t* _size);
46 bool getBytes(byte_t* p, size_t* _size);
47 bool writeTo(OutputStream* p, size_t* _size);
48
49 bool getBlobInfo(isc_blob_handle* phBlob, char blob_info_item, size_t* pn);
50 bool getBytesFromBlob(byte_t* p, size_t* _size);
51 bool writeToFromBlob(OutputStream* p, size_t* _size);
52};
53
55 const wchar_t* _filename, int _line)
56{
57 ((IBConnection*)Field::connection())
58 ->setErrorStatus(_error, _filename, _line);
59}
60
61inline void IBField::setErrorStatus(const ByteString _message,
62 const wchar_t* _filename, int _line)
63{
64 ((IBConnection*)Field::connection())
65 ->setErrorStatus(_message, _filename, _line);
66}
67
68inline IBQuery* IBField::query() const
69{
70 return (IBQuery*)Field::__queryHandle;
71}
72
73__DCL_END_NAMESPACE
74
75#endif // __DCL_INTERBASE_FIELD_H__
unsigned char byte_t
Definition Config.h:274
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
virtual bool __getDataSize(size_t *_size, bool _maxSize)
Definition IBField.cpp:259
bool writeToFromBlob(OutputStream *p, size_t *_size)
Definition IBField.cpp:1303
bool getDecimal(char *p, size_t *_size)
Definition IBField.cpp:1096
bool getBlobInfo(isc_blob_handle *phBlob, char blob_info_item, size_t *pn)
Definition IBField.cpp:1196
bool onAfterFetch()
Definition IBField.cpp:158
void setErrorStatus(SQL::Error _error, const wchar_t *_filename, int _line)
Definition IBField.h:54
bool getTimeStamp(SQL::TimeStamp *p, size_t *_size)
Definition IBField.cpp:991
bool getDate(SQL::Date *p, size_t *_size)
Definition IBField.cpp:930
bool getTime(SQL::Time *p, size_t *_size)
Definition IBField.cpp:958
virtual bool isNull() const
Definition IBField.cpp:246
virtual bool __getData(void *_pv, size_t *_size, SQL::DataType _dataType)
Definition IBField.cpp:301
bool getFloat(void *_pv, size_t *_size)
Definition IBField.cpp:811
bool getUInteger(void *_pv, size_t *_size)
Definition IBField.cpp:605
bool init(SQL::Query *_query, XSQLVAR *_sqlvar)
Definition IBField.cpp:49
virtual ~IBField()
Definition IBField.cpp:44
bool getBytesFromBlob(byte_t *p, size_t *_size)
Definition IBField.cpp:1228
bool getBytes(byte_t *p, size_t *_size)
Definition IBField.cpp:1120
IBQuery * query() const
Definition IBField.h:68
bool getInteger(void *_pv, size_t *_size)
Definition IBField.cpp:405
virtual const wchar_t * serverDataTypeName() const
Definition IBField.cpp:241
bool writeTo(OutputStream *p, size_t *_size)
Definition IBField.cpp:1151
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19