1 #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_GROUPQUERY_H
2 #define BZS_DB_PROTOCOL_TDAP_CLIENT_GROUPQUERY_H
21 #include <bzs/db/protocol/tdap/client/trdboostapi.h>
34 #define JOIN_NO_MORERECORD 1
41 struct fieldNamesImple* m_impl;
43 void doAddValue(
const _TCHAR* v,
bool isNull);
51 fieldNames& keyField(
const _TCHAR* name,
const _TCHAR* name1 = NULL,
52 const _TCHAR* name2 = NULL,
const _TCHAR* name3 = NULL,
53 const _TCHAR* name4 = NULL,
const _TCHAR* name5 = NULL,
54 const _TCHAR* name6 = NULL,
const _TCHAR* name7 = NULL,
55 const _TCHAR* name8 = NULL,
const _TCHAR* name9 = NULL,
56 const _TCHAR* name10 = NULL);
59 const _TCHAR* operator[](
int index)
const;
60 const _TCHAR* getValue(
int index)
const;
61 void addValue(
const _TCHAR* v);
62 void addValues(
const _TCHAR* values,
74 void addValue(
const _TCHAR* v,
bool isNull);
75 bool isNull(
int index)
const;
86 std::vector<sortField> m_params;
88 template <
class Archive>
89 friend void serialize(Archive& ar,
sortFields& q,
const unsigned int);
96 m_params.push_back(op);
99 inline size_t size()
const {
return m_params.size(); }
102 return m_params[index];
104 inline void clear() { m_params.clear(); }
110 friend class recordsetImple;
112 struct recordsetQueryImple* m_imple;
114 void createTempRecord();
118 bool matchJoin(
const row_ptr rrow)
const;
120 int matchStatus()
const;
205 friend class groupQueryImple;
206 friend class groupFuncBaseImple;
213 unsigned char* stringResult(
int index)
const;
214 uchar_td resultType()
const;
215 ushort_td resultLen()
const;
216 void operator()(
const row_ptr&
row,
int index,
bool insert);
218 virtual void initResultVariable(
int index);
219 virtual void doCalcEachkey(
const field& fd,
int index);
220 virtual void doCalc(
const row_ptr&
row,
int index);
221 virtual void doReset();
222 virtual void doInit(
const fielddefs* fdinfo);
224 bool insertFlag()
const ;
225 void clearInsertFlag();
231 const _TCHAR* resultName = NULL);
236 const _TCHAR* resultName()
const;
237 void setResultName(
const _TCHAR* v);
238 int resultKey()
const;
240 bool isNull(
int index)
const;
241 uchar_td decimals()
const;
246 class recordsetImple;
250 friend class recordsetImple;
251 class groupQueryImple* m_imple;
252 void grouping(recordsetImple& rs);
262 groupQuery& keyField(
const _TCHAR* name,
const _TCHAR* name1 = NULL,
263 const _TCHAR* name2 = NULL,
const _TCHAR* name3 = NULL,
264 const _TCHAR* name4 = NULL,
const _TCHAR* name5 = NULL,
265 const _TCHAR* name6 = NULL,
const _TCHAR* name7 = NULL,
266 const _TCHAR* name8 = NULL,
const _TCHAR* name9 = NULL,
267 const _TCHAR* name10 = NULL);
270 int functionCount()
const;
278 virtual void doCalcEachkey(
const field& fd,
int index);
282 sum(
const fieldNames& targetNames,
const _TCHAR* resultName = NULL);
284 const _TCHAR* resultName = NULL);
291 void doCalcEachkey(
const field& fd,
int index);
293 void initResultVariable(
int index);
296 count(
const _TCHAR* resultName);
298 static count* create(
const _TCHAR* resultName);
300 const _TCHAR* resultName = NULL);
305 void initResultVariable(
int index);
306 void doCalcEachkey(
const field& fd,
int index);
311 avg(
const fieldNames& targetNames,
const _TCHAR* resultName = NULL);
313 const _TCHAR* resultName = NULL);
321 void doCalcEachkey(
const field& fd,
int index);
323 min& operator=(
const min& r);
327 min(
const fieldNames& targetNames,
const _TCHAR* resultName = NULL);
329 const _TCHAR* resultName = NULL);
335 void doCalcEachkey(
const field& fd,
int index);
337 max& operator=(
const max& r);
341 max(
const fieldNames& targetNames,
const _TCHAR* resultName = NULL);
343 const _TCHAR* resultName = NULL);
353 void storeValue(
const row_ptr& row,
int index);
356 last(
const fieldNames& targetNames,
const _TCHAR* resultName = NULL);
358 const _TCHAR* resultName = NULL);
373 const _TCHAR* resultName = NULL);
384 #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_GROUPQUERY_H
last()
Definition: groupQuery.h:355
recordsetQuery & whenIsNull(const _TCHAR *name)
Definition: groupQuery.h:159
recordsetQuery & orIsNotNull(const _TCHAR *name)
Definition: groupQuery.h:189
グルーピング Firstクラス
Definition: groupQuery.h:362
const _TCHAR * toString() const
Definition: groupQuery.h:195
query & orIsNull(const _TCHAR *name)
Definition: table.h:594
query & orIsNotNull(const _TCHAR *name)
Definition: table.h:600
グルーピング 最小値計算クラス
Definition: groupQuery.h:318
min()
Definition: groupQuery.h:326
recordsetQuery & andIsNotNull(const _TCHAR *name)
Definition: groupQuery.h:177
query & whereIsNull(const _TCHAR *name)
Definition: table.h:548
sortFields & add(const _TCHAR *name, bool asc)
Definition: groupQuery.h:93
recordsetQuery & andIsNull(const _TCHAR *name)
Definition: groupQuery.h:171
query & where(const _TCHAR *name, const _TCHAR *qlogic, T value)
Definition: table.h:542
グルーピング 合計計算クラス
Definition: groupQuery.h:275
max()
Definition: groupQuery.h:340
グルーピング 最大値計算クラス
Definition: groupQuery.h:333
グルーピング条件を指定するクラス
Definition: groupQuery.h:248
query & reset()
Definition: table.h:499
recordsetQuery & and_(const _TCHAR *name, const _TCHAR *qlogic, T value)
Definition: groupQuery.h:138
query * internalQuery()
Definition: groupQuery.h:197
グルーピング 平均値計算クラス
Definition: groupQuery.h:303
recordsetQuery & when(const _TCHAR *name, const _TCHAR *qlogic, T value)
Definition: groupQuery.h:130
sum()
Definition: groupQuery.h:281
fielddef のコレクションクラス
Definition: field.h:74
query & andIsNull(const _TCHAR *name)
Definition: table.h:571
recordsetQuery & orIsNull(const _TCHAR *name)
Definition: groupQuery.h:183
recordset のソートパラメータコレクションクラス
Definition: groupQuery.h:84
グルーピング レコード数カウンター
Definition: groupQuery.h:287
const _TCHAR * toString() const
recordsetQuery & whenIsNotNull(const _TCHAR *name)
Definition: groupQuery.h:165
recordset フィルタリングクエリー
Definition: groupQuery.h:107
double numeric_type
Definition: groupQuery.h:208
フィールドコレクションのベースクラス
Definition: fields.h:123
query & whereIsNotNull(const _TCHAR *name)
Definition: table.h:554
query & and_(const _TCHAR *name, const _TCHAR *qlogic, T value)
Definition: table.h:561
読み取り用クエリー
Definition: table.h:491
count()
Definition: groupQuery.h:295
bool asc
Definition: groupQuery.h:81
std::_tstring name
Definition: groupQuery.h:80
void clear()
Definition: groupQuery.h:104
first()
Definition: groupQuery.h:370
query & andIsNotNull(const _TCHAR *name)
Definition: table.h:577
フィールドの値を文字列で保持するクラス
Definition: groupQuery.h:68
size_t size() const
Definition: groupQuery.h:99
class groupFuncBaseImple * m_imple
Definition: groupQuery.h:210
グルーピング Lastクラス
Definition: groupQuery.h:347
フィールド名を保持するクラス
Definition: groupQuery.h:36
query & or_(const _TCHAR *name, const _TCHAR *qlogic, T value)
Definition: table.h:584
const sortField & operator[](int index) const
Definition: groupQuery.h:100
グルーピング計算関数のベースクラス
Definition: groupQuery.h:202
recordset のソートパラメータ構造体
Definition: groupQuery.h:78
フィールドアクセスクラス
Definition: field.h:118
recordsetQuery & or_(const _TCHAR *name, const _TCHAR *qlogic, T value)
Definition: groupQuery.h:146
recordsetQuery & reset()
Definition: groupQuery.h:153