DCL 4.1
Loading...
Searching...
No Matches
IBField.h
Go to the documentation of this file.
1#ifndef __DCL_IB_FIELD_H__
2#define __DCL_IB_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* _buf, size_t* _size, SQL::DataType _dataType);
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 bool getDate(SQL::Date* _buf, size_t* _size);
43 bool getTime(SQL::Time* _buf, size_t* _size);
44 bool getTimeStamp(SQL::TimeStamp* _buf, size_t* _size);
45 bool getDecimal(char* _buf, size_t* _size);
46 bool getBytes(byte_t* _buf, size_t* _size);
47 bool writeTo(OutputStream* _output, size_t* _size);
48
49 bool getBlobInfo(
50 isc_blob_handle* _blobHandle,
51 char _blob_info_item, size_t* _buf
52 );
53 bool getBytesFromBlob(byte_t* _buf, size_t* _size);
54 bool writeToFromBlob(OutputStream* _output, size_t* _size);
55};
56
58 const wchar_t* _filename, int _line)
59{
60 ((IBConnection*)Field::connection())
61 ->setErrorStatus(_error, _filename, _line);
62}
63
64inline void IBField::setErrorStatus(const ByteString _message,
65 const wchar_t* _filename, int _line)
66{
67 ((IBConnection*)Field::connection())
68 ->setErrorStatus(_message, _filename, _line);
69}
70
71inline IBQuery* IBField::query() const
72{
73 return (IBQuery*)Field::__queryHandle;
74}
75
76__DCL_END_NAMESPACE
77
78#endif // __DCL_IB_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:271
bool getBlobInfo(isc_blob_handle *_blobHandle, char _blob_info_item, size_t *_buf)
Definition IBField.cpp:1257
bool getInteger(void *_buf, size_t *_size)
Definition IBField.cpp:429
virtual bool __getData(void *_buf, size_t *_size, SQL::DataType _dataType)
Definition IBField.cpp:313
bool onAfterFetch()
Definition IBField.cpp:170
bool getDecimal(char *_buf, size_t *_size)
Definition IBField.cpp:1157
bool writeToFromBlob(OutputStream *_output, size_t *_size)
Definition IBField.cpp:1367
void setErrorStatus(SQL::Error _error, const wchar_t *_filename, int _line)
Definition IBField.h:57
bool getUInteger(void *_buf, size_t *_size)
Definition IBField.cpp:629
bool writeTo(OutputStream *_output, size_t *_size)
Definition IBField.cpp:1212
virtual bool isNull() const
Definition IBField.cpp:258
bool getBytesFromBlob(byte_t *_buf, size_t *_size)
Definition IBField.cpp:1292
bool getBytes(byte_t *_buf, size_t *_size)
Definition IBField.cpp:1181
bool init(SQL::Query *_query, XSQLVAR *_sqlvar)
Definition IBField.cpp:49
virtual ~IBField()
Definition IBField.cpp:44
bool getTimeStamp(SQL::TimeStamp *_buf, size_t *_size)
Definition IBField.cpp:1037
bool getTime(SQL::Time *_buf, size_t *_size)
Definition IBField.cpp:989
IBQuery * query() const
Definition IBField.h:71
bool getFloat(void *_buf, size_t *_size)
Definition IBField.cpp:835
virtual const wchar_t * serverDataTypeName() const
Definition IBField.cpp:253
bool getDate(SQL::Date *_buf, size_t *_size)
Definition IBField.cpp:954
DataType
Definition SQLCore.h:62
Error
Definition SQLCore.h:19