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

グルーピング Lastクラス [詳解]

#include <groupQuery.h>

+ last の継承関係図

公開メンバ関数

 last ()
 
 last (const fieldNames &targetNames, const _TCHAR *resultName=NULL)
 
- 基底クラス groupFuncBase に属する継承公開メンバ関数
 groupFuncBase ()
 
 groupFuncBase (const groupFuncBase &v)
 
 groupFuncBase (const fieldNames &targetNames, const _TCHAR *resultName=NULL)
 
virtual ~groupFuncBase ()
 
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)
 

静的公開メンバ関数

static lastcreate (const fieldNames &targetNames, const _TCHAR *resultName=NULL)
 
- 基底クラス recordsetQuery に属する継承静的公開メンバ関数
static recordsetQuerycreate ()
 

限定公開メンバ関数

groupFuncBaseclone ()
 
void doCalc (const row_ptr &row, int index)
 
void doInit (const fielddefs *fdinfo)
 
void storeValue (const row_ptr &row, int index)
 
- 基底クラス groupFuncBase に属する継承限定公開メンバ関数
void clearInsertFlag ()
 
virtual void doCalcEachkey (const field &fd, int index)
 
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
 

その他の継承メンバ

- 基底クラス groupFuncBase に属する継承限定公開型
typedef double numeric_type
 
- 基底クラス queryBase に属する継承限定公開型
enum  eOptimize { none = 0, joinHasOneOrHasMany = 1, combineCondition = 2 }
 クエリーの実行時に行われる最適化条件をセットします。 [詳解]
 
- 基底クラス query に属する継承静的限定公開メンバ関数
static querycreate ()
 
- 基底クラス queryBase に属する継承静的限定公開メンバ関数
static queryBasecreate ()
 
- 基底クラス groupFuncBase に属する継承限定公開変数類
class groupFuncBaseImplem_imple
 

詳解

グルーピング Lastクラス

グルーピング時にグループごと最後のレコードの値を返します。
結果は対象列の型に応じて文字列またはdouble型のデータが返されます。
このクラスのインスタンスを groupQuery::addFunction() に渡して使用します。
以下のサンプルは、categoryごとに最後のレコードの値を求めます。 value列にセットされます。

 
fieldNames fns;
fns.keyField("value");
last last1(fns);
groupQuery gq;
gq.addFunction(&min1).keyField("category");
recordset.groupBy(gq);
 

構築子と解体子

last ( )
inline

デフォルトコンストラクタ。通常ユーザーはこのコンストラクタは使用しません。

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

関数詳解

groupFuncBase* clone ( )
protectedvirtual

groupFuncBaseを実装しています。

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

static last * create ( const fieldNames targetNames,
const _TCHAR *  resultName = NULL 
)
static

lastオブジェクトを生成し返します。new演算子の代わりにこの関数にて生成するようにしてください。DLL内で実装されたnew演算子が使用されるようになります。また破棄は delete の代わりに release() を呼び出してください。引数の詳細は対応するコンストラクタを参照してください。

void doCalc ( const row_ptr row,
int  index 
)
protectedvirtual

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

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

groupFuncBaseを再実装しています。

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

void doInit ( const fielddefs fdinfo)
protectedvirtual

groupFuncBaseを再実装しています。

void storeValue ( const row_ptr row,
int  index 
)
protected

rowで受け取った行の値をindexで指定されたグループに値を保存します。また、clearInsertFlag()を呼び出してフラグをクリアします。

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