DCL 3.7.4
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 IBQuery* query() const;
18 IBConnection* conn() const;
19
20public:
22 virtual ~IBField();
23
24 bool init(SQL::Query* _query, XSQLVAR* _sqlvar);
25 bool onAfterFetch();
26
27 // interfaces
28 virtual const wchar_t* serverDataTypeName() const;
29 virtual bool __getDataSize(size_t* _size, bool _maxsize);
30
31 virtual bool __getData(
32 void* _buf,
33 size_t* _size,
34 SQL::DataType _bufType
35 );
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
57inline IBQuery* IBField::query() const
58{
59 return (IBQuery*)Field::__queryHandle;
60}
61
63{
64 return query()->conn();
65}
66
67const wchar_t* __dataTypeName(const XSQLVAR* _sqlvar);
68
69__DCL_END_NAMESPACE
70
71#endif // __DCL_IB_FIELD_H__
unsigned char byte_t
Definition Config.h:246
const wchar_t * __dataTypeName(const XSQLVAR *_sqlvar)
Definition IBField.cpp:240
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:227
bool getBlobInfo(isc_blob_handle *_blobHandle, char _blob_info_item, size_t *_buf)
Definition IBField.cpp:1292
bool getInteger(void *_buf, size_t *_size)
Definition IBField.cpp:443
bool onAfterFetch()
Definition IBField.cpp:197
bool getDecimal(char *_buf, size_t *_size)
Definition IBField.cpp:1193
bool writeToFromBlob(OutputStream *_output, size_t *_size)
Definition IBField.cpp:1402
bool getUInteger(void *_buf, size_t *_size)
Definition IBField.cpp:657
bool writeTo(OutputStream *_output, size_t *_size)
Definition IBField.cpp:1247
virtual bool __getDataSize(size_t *_size, bool _maxsize)
Definition IBField.cpp:288
bool getBytesFromBlob(byte_t *_buf, size_t *_size)
Definition IBField.cpp:1325
bool getBytes(byte_t *_buf, size_t *_size)
Definition IBField.cpp:1216
bool init(SQL::Query *_query, XSQLVAR *_sqlvar)
Definition IBField.cpp:69
virtual ~IBField()
Definition IBField.cpp:64
bool getTimeStamp(SQL::TimeStamp *_buf, size_t *_size)
Definition IBField.cpp:1066
bool getTime(SQL::Time *_buf, size_t *_size)
Definition IBField.cpp:1018
IBQuery * query() const
Definition IBField.h:57
bool getFloat(void *_buf, size_t *_size)
Definition IBField.cpp:871
virtual const wchar_t * serverDataTypeName() const
Definition IBField.cpp:283
bool getDate(SQL::Date *_buf, size_t *_size)
Definition IBField.cpp:983
IBConnection * conn() const
Definition IBField.h:62
virtual bool __getData(void *_buf, size_t *_size, SQL::DataType _bufType)
Definition IBField.cpp:326
DataType
Definition SQLCore.h:59