1 #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_FIELD_H
2 #define BZS_DB_PROTOCOL_TDAP_CLIENT_FIELD_H
22 #include "fieldNameAlias.h"
41 class stringConverter;
45 class DLLLIB fieldShare
49 friend class recordCache;
52 struct Imple* m_imple;
55 unsigned char myDateTimeValueByBtrv : 1;
56 unsigned char logicalToString : 1;
58 fieldShare(
const fieldShare&);
59 fieldShare& operator=(
const fieldShare&);
64 virtual ~fieldShare();
65 stringConverter* cv()
const;
66 bzs::rtl::stringBuffer* strBufs()
const;
67 void blobPushBack(
char* p);
75 struct infoImple* m_imple;
82 friend class recordsetImple;
86 friend struct recordsetQueryImple;
91 void copyFrom(
const class table* tb);
93 size_t totalFieldLen()
const;
94 void resetUpdateIndicator();
95 void setAliases(
const aliasMap_type* p);
96 void push_back(
const fielddef* p,
bool rePosition =
false);
97 void remove(
int index);
98 void reserve(
size_t size);
104 int indexByName(
const std::_tstring& name)
const;
105 const fielddef& operator[](
int index)
const;
106 const fielddef& operator[](
const _TCHAR* name)
const;
107 const fielddef& operator[](
const std::_tstring& name)
const;
108 bool checkIndex(
int index)
const;
116 typedef int (*compFieldFunc)(
const class field& l,
const class field& r,
118 extern int compWString(
const field& l,
const field& r,
char logType);
119 extern int compiWString(
const field& l,
const field& r,
char logType);
129 friend int compBlob(
const field& l,
const field& r,
char logType);
132 unsigned char* m_ptr;
135 int blobLenBytes()
const {
return m_fd->blobLenBytes(); }
139 unsigned char getFVbyt()
const;
140 short getFVsht()
const;
141 int getFVint()
const;
142 int getFVlng()
const;
143 __int64 getFV64()
const;
144 float getFVflt()
const;
145 double getFVdbl()
const;
146 void* getFVbin(uint_td& size)
const;
147 const char* getFVAstr()
const;
149 const wchar_t* getFVWstr()
const;
150 void setFVW(
const wchar_t* data);
152 void setFV(
float data);
153 void setFV(
double data);
154 void setFV(
unsigned char data);
155 void setFV(
short data);
156 void setFV(
int data);
157 void setFV(__int64 data);
158 void setFVA(
const char* data);
159 void setFV(
const void* data, uint_td size);
161 inline const wchar_t* getFVstr()
const {
return getFVWstr(); };
162 inline void setFV(
const wchar_t* data) { setFVW(data); };
164 inline const char* getFVstr()
const {
return getFVAstr(); };
165 inline void setFV(
const char* data) { setFVA(data); };
167 double getFVnumeric()
const;
168 double getFVDecimal()
const;
169 void setFVDecimal(
double data);
170 void setFVNumeric(
double data);
175 #if defined(SWIG) || \
176 defined(SWIG_BUILDING) // SWIG Wrapper need public constructor
179 inline field() : m_fd(NULL), m_ptr(NULL), m_fds(NULL){};
184 inline field(
unsigned char* ptr,
const fielddef& fd,
const fielddefs* fds)
185 : m_fd((fielddef*)&fd), m_ptr(ptr), m_fds(fds){};
189 inline field(
const field& r) : m_fd(r.m_fd), m_ptr(r.m_ptr), m_fds(r.m_fds)
203 unsigned char type()
const {
return m_fd->type; }
205 unsigned short len()
const {
return m_fd->len; }
207 inline const _TCHAR*
c_str()
const {
return getFVstr(); }
209 inline const char*
a_str()
const {
return getFVAstr(); }
211 inline int i()
const {
return getFVint(); }
213 inline int i8()
const {
return getFVbyt(); }
215 inline short i16()
const {
return getFVsht(); }
217 inline __int64
i64()
const {
return getFV64(); }
219 inline float f()
const {
return getFVflt(); }
221 inline double d()
const {
return getFVdbl(); }
226 m_fd->enableFlags.bitE =
true;
233 m_fd->enableFlags.bitE =
true;
238 inline field& operator=(
const char* p)
241 m_fd->enableFlags.bitE =
true;
245 inline field& operator=(
const std::string& p)
248 m_fd->enableFlags.bitE =
true;
257 m_fd->enableFlags.bitE =
true;
264 m_fd->enableFlags.bitE =
true;
271 m_fd->enableFlags.bitE =
true;
278 m_fd->enableFlags.bitE =
true;
284 return (_tcscmp(p,
c_str()) != 0);
288 return (_tcscmp(p,
c_str()) == 0);
306 inline void setBin(
const void* data, uint_td size)
309 m_fd->enableFlags.bitE =
true;
311 inline void*
getBin(uint_td& size) {
return getFVbin(size); };
313 int comp(
const field& r,
char logType = CMPLOGICAL_VAR_COMP_ALL)
const;
316 bool isCompPartAndMakeValue();
317 void offsetBlobPtr(
size_t offset);
318 compFieldFunc getCompFunc(
char logType)
const;
325 inline int getFieldType(
int)
330 inline int getFieldType(__int64)
335 inline int getFieldType(
short)
340 inline int getFieldType(
char)
345 inline int getFieldType(
double)
350 inline int getFieldType(
float)
355 inline __int64 fieldValue(
const field& fd, __int64)
360 inline int fieldValue(
const field& fd,
int)
365 inline short fieldValue(
const field& fd,
short)
367 return (
short)fd.i();
370 inline char fieldValue(
const field& fd,
char)
375 inline double fieldValue(
const field& fd,
double)
380 inline float fieldValue(
const field& fd,
float)
385 inline const _TCHAR* fieldValue(
const field& fd,
const _TCHAR*)
390 DLLLIB
const fielddef& dummyFd();
399 #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_FIELD_H
bool operator!=(short v)
Definition: field.h:294
field(const field &r)
Definition: field.h:189
const _TCHAR * c_str() const
Definition: field.h:207
__int64 i64() const
Definition: field.h:217
フィールド定義構造体
Definition: tdapSchema.h:300
unsigned short len() const
Definition: field.h:205
bool operator!=(double v)
Definition: field.h:303
bool operator==(double v)
Definition: field.h:304
float f() const
Definition: field.h:219
field & operator=(const _TCHAR *p)
Definition: field.h:223
const char * a_str() const
Definition: field.h:209
short i16() const
Definition: field.h:215
void * getBin(uint_td &size)
Definition: field.h:311
bool operator!=(float v)
Definition: field.h:300
void setBin(const void *data, uint_td size)
Definition: field.h:306
テーブルアクセスクラス (nocopyable)
Definition: table.h:89
int i8() const
Definition: field.h:213
bool operator==(int v)
Definition: field.h:292
field & operator=(__int64 v)
Definition: field.h:261
fielddef のコレクションクラス
Definition: field.h:73
field & operator=(const std::_tstring &p)
Definition: field.h:230
int i() const
Definition: field.h:211
bool operator==(float v)
Definition: field.h:301
bool operator==(__int64 v)
Definition: field.h:298
recordset フィルタリングクエリー
Definition: groupQuery.h:95
フィールドコレクションのベースクラス
Definition: fields.h:123
bool operator!=(int v)
Definition: field.h:291
field & operator=(float v)
Definition: field.h:268
bool operator!=(__int64 v)
Definition: field.h:297
bool operator==(const _TCHAR *p)
Definition: field.h:286
bool operator!=(const _TCHAR *p)
Definition: field.h:282
field & operator=(double v)
Definition: field.h:275
unsigned char type() const
Definition: field.h:203
書き込み可能な行のクラスです。
Definition: memRecord.h:154
field & operator=(int v)
Definition: field.h:254
double d() const
Definition: field.h:221
field & operator=(const field &r)
Definition: field.h:193
const _TCHAR * c_str(const btrDate &d)
Definition: btrDate.h:207
rowの実装クラス
Definition: memRecord.h:68
テーブル定義構造体
Definition: tdapSchema.h:660
フィールドアクセスクラス
Definition: field.h:123
bool operator==(short v)
Definition: field.h:295