全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 ページ
公開メンバ関数 | 限定公開型 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
groupFuncBase クラスabstract

グルーピング計算関数のベースクラス [詳解]

#include <groupQuery.h>

+ groupFuncBase の継承関係図

公開メンバ関数

 groupFuncBase ()
 
 groupFuncBase (const groupFuncBase &v)
 
 groupFuncBase (const fieldNames &targetNames, const _TCHAR *resultName=NULL)
 
virtual ~groupFuncBase ()
 
virtual groupFuncBaseclone ()=0
 
uchar_td decimals () const
 
bool isNull (int index) const
 
groupFuncBaseoperator= (const groupFuncBase &v)
 
groupFuncBaseoperator= (const recordsetQuery &v)
 
void reset ()
 
int resultKey () const
 
const _TCHAR * resultName () const
 
void setResultName (const _TCHAR *v)
 
fieldNamestargetNames () const
 
- 基底クラス recordsetQuery に属する継承公開メンバ関数
 recordsetQuery ()
 
 recordsetQuery (const recordsetQuery &r)
 
 ~recordsetQuery ()
 
template<class T >
recordsetQueryand_ (const _TCHAR *name, const _TCHAR *qlogic, T value)
 
recordsetQueryandIsNotNull (const _TCHAR *name)
 
recordsetQueryandIsNull (const _TCHAR *name)
 
queryinternalQuery ()
 
recordsetQueryoperator= (const recordsetQuery &r)
 
template<class T >
recordsetQueryor_ (const _TCHAR *name, const _TCHAR *qlogic, T value)
 
recordsetQueryorIsNotNull (const _TCHAR *name)
 
recordsetQueryorIsNull (const _TCHAR *name)
 
void release ()
 
recordsetQueryreset ()
 
const _TCHAR * toString () const
 
template<class T >
recordsetQuerywhen (const _TCHAR *name, const _TCHAR *qlogic, T value)
 
recordsetQuerywhenIsNotNull (const _TCHAR *name)
 
recordsetQuerywhenIsNull (const _TCHAR *name)
 

限定公開型

typedef double numeric_type
 
- 基底クラス queryBase に属する継承限定公開型
enum  eOptimize { none = 0, joinHasOneOrHasMany = 1, combineCondition = 2 }
 クエリーの実行時に行われる最適化条件をセットします。 [詳解]
 

限定公開メンバ関数

void clearInsertFlag ()
 
virtual void doCalc (const row_ptr &row, int index)
 
virtual void doCalcEachkey (const field &fd, int index)
 
virtual void doInit (const fielddefs *fdinfo)
 
virtual void doReset ()
 
void init (const fielddefs *fdinfo)
 
virtual void initResultVariable (int index)
 
bool insertFlag () const
 
virtual numeric_type numericResult (int index) const
 
void operator() (const row_ptr &row, int index, bool insert)
 
ushort_td resultLen () const
 
uchar_td resultType () const
 
unsigned char * stringResult (int index) const
 
- 基底クラス query に属する継承限定公開メンバ関数
 query ()
 
 query (const query &r)
 
virtual ~query ()
 
template<class T >
queryand_ (const _TCHAR *name, const _TCHAR *qlogic, T value)
 
queryandIsNotNull (const _TCHAR *name)
 
queryandIsNull (const _TCHAR *name)
 
template<class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
queryin (const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
 
template<class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
queryin (const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5, const T6 kv6)
 
template<class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
queryin (const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5)
 
template<class T0 , class T1 , class T2 , class T3 , class T4 >
queryin (const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4)
 
template<class T0 , class T1 , class T2 , class T3 >
queryin (const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3)
 
template<class T0 , class T1 , class T2 >
queryin (const T0 kv0, const T1 kv1, const T2 kv2)
 
template<class T0 , class T1 >
queryin (const T0 kv0, const T1 kv1)
 
template<class T0 >
queryin (const T0 kv0)
 
template<class T >
queryor_ (const _TCHAR *name, const _TCHAR *qlogic, T value)
 
queryorIsNotNull (const _TCHAR *name)
 
queryorIsNull (const _TCHAR *name)
 
queryreset ()
 
querysegmentsForInValue (int v)
 
queryselect (const _TCHAR *name, const _TCHAR *name1=NULL, const _TCHAR *name2=NULL, const _TCHAR *name3=NULL, const _TCHAR *name4=NULL, const _TCHAR *name5=NULL, const _TCHAR *name6=NULL, const _TCHAR *name7=NULL, const _TCHAR *name8=NULL, const _TCHAR *name9=NULL, const _TCHAR *name10=NULL)
 
template<class T >
querywhere (const _TCHAR *name, const _TCHAR *qlogic, T value)
 
querywhereIsNotNull (const _TCHAR *name)
 
querywhereIsNull (const _TCHAR *name)
 
- 基底クラス queryBase に属する継承限定公開メンバ関数
const std::vector
< std::_tstring > & 
getSeekKeyValues () const
 
const std::vector< keyValuePtr > & getSeekValuesPtr () const
 
const std::vector
< std::_tstring > & 
getSelects () const
 
const std::vector
< std::_tstring > & 
getWheres () const
 
 queryBase ()
 
 queryBase (const queryBase &r)
 
virtual ~queryBase ()
 
void addField (const _TCHAR *name)
 
void addLogic (const _TCHAR *name, const _TCHAR *logic, const _TCHAR *value)
 
void addLogic (const _TCHAR *combine, const _TCHAR *name, const _TCHAR *logic, const _TCHAR *value)
 
void addSeekBookmark (bookmark_td &bm, ushort_td len, bool reset=false)
 
void addSeekKeyValue (const _TCHAR *value, bool reset=false)
 
void addSeekKeyValuePtr (const void *value, ushort_td len, short typeStr, bool reset=false)
 
queryBaseall ()
 
queryBasebookmarkAlso (bool v)
 
void clearSeekKeyValues ()
 
void clearSelectFields ()
 
queryBasedirection (table::eFindType v)
 
table::eFindType getDirection () const
 
int getJoinKeySize () const
 
int getLimit () const
 
eOptimize getOptimize () const
 
int getReject () const
 
const _TCHAR * getSelect (short index) const
 
const _TCHAR * getWhereToken (short index) const
 
bool isAll () const
 
bool isBookmarkAlso () const
 
bool isSeekByBookmarks () const
 
bool isStopAtLimit () const
 
queryBasejoinKeySize (int v)
 
queryBaselimit (int v)
 
queryBaseoperator= (const queryBase &r)
 
queryBaseoptimize (eOptimize v)
 
queryBasequeryString (const _TCHAR *str, bool autoEscape=false)
 
queryBasereject (int v)
 
void release ()
 
void reserveSeekKeyValuePtrSize (size_t v)
 
void reserveSeekKeyValueSize (size_t v)
 
void reset ()
 
void reverseAliasName (const _TCHAR *alias, const _TCHAR *src)
 
short selectCount () const
 
void setWhereToken (short index, const _TCHAR *v)
 
queryBasestopAtLimit (bool v)
 
const _TCHAR * toString () const
 
short whereTokens () const
 

限定公開変数類

class groupFuncBaseImplem_imple
 

その他の継承メンバ

- 基底クラス recordsetQuery に属する継承静的公開メンバ関数
static recordsetQuerycreate ()
 
- 基底クラス query に属する継承静的限定公開メンバ関数
static querycreate ()
 
- 基底クラス queryBase に属する継承静的限定公開メンバ関数
static queryBasecreate ()
 

詳解

グルーピング計算関数のベースクラス

グルーピング時にグループごとに計算を行うクラスの基底クラス
計算に必要な基本的なフレームワークを提供します。
このクラスをオーバライドすると容易にさまざまな計算クラスを実装できます。
計算結果はデフォルトでdouble型のデータが返されます。

型定義メンバ詳解

numeric_type
protected

計算結果の型を定義しています。デフォルトはdouble型です。

構築子と解体子

コンストラクタ

groupFuncBase ( const groupFuncBase v)

コピーコンストラクタ

groupFuncBase ( const fieldNames targetNames,
const _TCHAR *  resultName = NULL 
)
引数
targetNames計算の対象となる列名リストを指定します。
resultName結果を保持する列名を指定します。NULLで且つ場合targetNamesで指定したフィールドが一つの場合その名前にします。
~groupFuncBase ( )
virtual

仮想デストラクタ

関数詳解

void clearInsertFlag ( )
protected

内部に保持されたinsertFlagをクリアします。

virtual groupFuncBase* clone ( )
pure virtual

first, last, min, count, sumで実装されています。

uchar_td decimals ( ) const

結果がdouble型の場合で、文字列変換の際の小数点以下の桁数を返します。
小数点以下の桁数は、計算内容と対象の列の型によって決まります。

void doCalc ( const row_ptr row,
int  index 
)
protectedvirtual

この関数内で実際の計算を行います。単一の変数で結果を計算できる場合は m_values[index]に値を入れます。たとえば合計であれば m_values[index] += このレコードの値 となります。
計算の内容ごとに異なった実装を行います。

引数
row対象のレコードです。
indexグルーピングされたグループの番号を示します。通常、計算はグループごとに区別して行います。

first, last, countで再実装されています。

virtual void doCalcEachkey ( const field fd,
int  index 
)
protectedvirtual

min, count, sumで再実装されています。

virtual void doInit ( const fielddefs fdinfo)
protectedvirtual

lastで再実装されています。

void doReset ( )
protectedvirtual

reset() を実装します。継承したクラスでこの関数をオーバーライドすることで、独自の変数を初期化することができます。

firstで再実装されています。

void init ( const fielddefs fdinfo)
protected

フィールド定義を受け取って m_resultKey m_targetKey に名前から番号をセットします。
resultName() が既存ではない名前の場合は、m_resultKeyに現在あるフィールド数をセットします。 groupQuery クラスで新しい列が自動で追加されます。

引数
fdinfoフィールド定義
void initResultVariable ( int  index)
protectedvirtual

新しいグループ番号が追加された際に、新しい値を保持する変数を確保します。
この関数は、必要なときに operator() から呼び出されます。

引数
indexグループ番号

countで再実装されています。

bool insertFlag ( ) const
protected

内部に保持されたinsertFlagの値を返します。 新しいグループが追加された際にtrueを返します。
clearInsertFlag() を呼び出すことで、falseに設定されます。

bool isNull ( int  index) const

indexで指定されたグループの値がNULLかどうかを返します。

numeric_type numericResult ( int  index) const
protectedvirtual

数値型の計算結果を返します。コンストラクに渡した、targetNamesの最初のフィールド型が数値型の場合にのみ有効です。

引数
indexグループ番号
戻り値
indexで指定されたグループの計算結果を返します。
void operator() ( const row_ptr row,
int  index,
bool  insert 
)
protected

一つの行について計算を実行します。この関数はグルーピング時にgroupQuery クラスから各行ごとに繰り返し呼び出されます。

引数
row対象の行
indexグループ番号
insertindexで示されたグループ番号が一連の呼び出しで始めて呼び出されたかどうかを示します。通常はじめての場合、結果データを保持する変数を確保します。
void groupFuncBase & operator= ( const groupFuncBase v)

v指定されたgroupFuncBaseオブジェクトの内容をこのオブジェクトにコピーします。

void groupFuncBase & operator= ( const recordsetQuery v)

v指定されたrecordsetQueryオブジェクトの内容をこのオブジェクトにコピーし参照を返します。

void reset ( )

計算結果をクリアします。

int resultKey ( ) const
戻り値
結果がセットされる列番号を返します。
ushort_td resultLen ( ) const
protected

結果を返すフィールド定義のフィールド長を返します。

const _TCHAR * resultName ( ) const
戻り値
結果がセットされる列名を返します。
uchar_td resultType ( ) const
protected

結果を返すフィールド定義のフィールドタイプを返します。

void setResultName ( const _TCHAR *  v)

結果がセットされる列名を設定します。

v指定されたrecordsetQueryオブジェクトの内容をこのオブジェクトにコピーし参照を返します。

結果を保持する列名をセットします。

unsigned char * stringResult ( int  index) const
protected

文字列型の処理結果を返します。コンストラクに渡した、targetNamesの最初のフィールド型が文字列型の場合にのみ有効です。

fieldNames & targetNames ( ) const
戻り値
計算対象の列名リストを返します。

メンバ詳解

class groupFuncBaseImple * m_imple
protected

このクラスの内部実装ポインタ

Transactd SDK 2018年07月31日(火) 19時40分35秒 doxygen