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

読み取り用クエリー [詳解]

#include <table.h>

+ 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 に属する継承公開メンバ関数
 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
 

静的公開メンバ関数

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

その他の継承メンバ

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

詳解

読み取り用クエリー

SQLライクなクエリーを、メソッドチェーンを使ってわかりやすく指定できます。
TransactdのクエリーはSQLと似ていますが、論理式の評価は異なっています。式の評価は以下の通りです。
論理式は1組のフィールド名・演算子・値で構成します。 論理式の評価は左から右に向かって順次行われます。演算の順序を決めるかっこ()は使用できません。 また、以下のロジックでマッチ、アンマッチが決定されます。

つぎのようなパターンの論理式は1回の検索では抽出できないことに注意してください。 レコード検索において、このような場合、複数回検索を行うか、共通条件で検索を行ったあと、個別のフィルタリングを行うようにします。

例1 (a or b) and (c or d) 最初の (a or b)のaがマッチすると条件1によりtrueが返され (c or d)であるかが評価されません。

例2 (a and b) or (c and d) 最初の (a and b)のaがアンマッチであると条件4によりfalseが返され (c and d)であるかが評価されません。

次のような論理式は良くあるパターンです。 最初に共通条件をandで接続します。最後に、候補をorで接続します。

date >= 2000-01-01 and date <= 2013-01-01 and group = 1 or group = 3 or group = 7

これは以下の式と等価です。

(date >= 2000-01-01 and date <= 2013-01-01) and (group = 1 or group = 3 or group = 7)

このような論理式は1回のオペレーションで検索できます。

構築子と解体子

query ( )
inline

コンストラクタ queryBase()を呼び出し初期化します。

query ( const query r)
inline

コピーコンストラクタ。

~query ( )
inlinevirtual

デストラクタ。

関数詳解

query & and_ ( const _TCHAR *  name,
const _TCHAR *  qlogic,
value 
)
inline

直前の条件がレコードにマッチし、さらに and で結合するレコードマッチ条件を追加します。

引数
nameフィールド名を指定します。
qlogic比較条件を指定します。次の文字列が使用できます。">" ">=" "<" "<=" "=" "<>"
value比較する値を指定します。Tはテンプレート型で char short int __int64 float double const _TCHAR* 型が使用できます。
戻り値
メソッドチェーンのために *thisが返されます。
注釈
valueにNULLポインターを渡すことはできません。NULLポインターを渡すと例外がスローされます。
query & andIsNotNull ( const _TCHAR *  name)
inline

直前の条件がレコードにマッチし、andで結合する非NULLのレコードマッチ条件を追加します

引数
nameフィールド名を指定します。
戻り値
メソッドチェーンのために *thisが返されます。
query & andIsNull ( const _TCHAR *  name)
inline

直前の条件がレコードにマッチし、andで結合するNULLのレコードマッチ条件を追加します

引数
nameフィールド名を指定します。
戻り値
メソッドチェーンのために *thisが返されます。
*static query * create ( )
static

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

query & in ( const T0  kv0,
const T1  kv1,
const T2  kv2,
const T3  kv3,
const T4  kv4,
const T5  kv5,
const T6  kv6,
const T7  kv7 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0,
const T1  kv1,
const T2  kv2,
const T3  kv3,
const T4  kv4,
const T5  kv5,
const T6  kv6 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0,
const T1  kv1,
const T2  kv2,
const T3  kv3,
const T4  kv4,
const T5  kv5 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0,
const T1  kv1,
const T2  kv2,
const T3  kv3,
const T4  kv4 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0,
const T1  kv1,
const T2  kv2,
const T3  kv3 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0,
const T1  kv1,
const T2  kv2 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0,
const T1  kv1 
)
inline

in(const T0 kv0) の引数数の異なるオーバーロードです。詳細は in(const T0 kv0) を参照してください。

query & in ( const T0  kv0)
inline

一致するレコードをまとめて取得するよう、キー値を複数設定します。
キーのセグメント数に応じて引数の数が異なるオーバーロードが用意されています。引数の型には、 char short int __int64 float double const _TCHAR* が使用できます。
1回の呼び出しで1レコード分のキー値を指定することも、複数レコード分のキー値を指定することもできます。セグメント数が1のキーに対しては、 in(1).in(2).in(3) と in(1, 2, 3) は等価です。また、セグメント数が2のキーに対しては、 in(1, 2).in(3, 4).in(5, 6) と in(1, 2, 3, 4, 5, 6) は等価です。
セグメント数が2以上のキーに対して、最初のいくつかのセグメントの値だけを指定する場合は、 segmentsForInValue() を使用して指定するセグメントの数を設定します。セグメント数が3のキーで、最初の2つの値だけを指定する場合は、 segmentsForInValue(2) を設定してから、 in(1, 2).in(3, 4) もしくは in(1, 2, 3, 4) と指定します。
in() と同時に where() or_() and_() などで指定された値を使用することはできません。 それらで指定された値は破棄されます。

戻り値
メソッドチェーンのために *thisが返されます。
注釈
引数にNULLポインターを渡すことはできません。NULLポインターを渡すと例外がスローされます。
query & or_ ( const _TCHAR *  name,
const _TCHAR *  qlogic,
value 
)
inline

直前の条件に orで結合するレコードマッチ条件を指定します。

引数
nameフィールド名を指定します。
qlogic比較条件を指定します。次の文字列が使用できます。">" ">=" "<" "<=" "=" "<>"
value比較する値を指定します。Tはテンプレート型で char short int __int64 float double const _TCHAR* 型が使用できます。
戻り値
メソッドチェーンのために *thisが返されます。
注釈
valueにNULLポインターを渡すことはできません。NULLポインターを渡すと例外がスローされます。
query & orIsNotNull ( const _TCHAR *  name)
inline

直前の条件にorで結合する非NULLのレコードマッチ条件を追加します

query & orIsNull ( const _TCHAR *  name)
inline

直前の条件にorで結合するNULLのレコードマッチ条件を追加します

引数
nameフィールド名を指定します。
戻り値
メソッドチェーンのために *thisが返されます。
query & reset ( )
inline

既に指定されたマッチ条件、取得するフィールドなどすべてをクリアします。

戻り値
メソッドチェーンのために *thisが返されます。
query & segmentsForInValue ( int  v)
inline

in() によるクエリーで activeTable::index() にマルチセグメントのキーを指定する場合に、 in() 渡すセグメントの数を指定します。
例えば、キーが4つのセグメントからなるキーで、 in() に渡す値はそのうち2つのみの場合、segmentsForInValue(2)とします。 複数の値を指定する場合、2つセットで1つを指定したことになります。
この値は、activeTable::index() で指定したキーのセグメント数以下でなければなりません。

query & select ( 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 
)
inline

取得するフィールドを指定します。一回の呼び出しで1〜11個まで指定できます。 複数回呼び出すとフィールドリストに追加されていきます。
この関数でフィールドを指定しなかった場合はすべてのフィールドが取得されます。

戻り値
メソッドチェーンのために *thisが返されます。
query & where ( const _TCHAR *  name,
const _TCHAR *  qlogic,
value 
)
inline

最初のレコードマッチ条件を指定します。
この関数を呼び出すと以前に指定されていたマッチ条件はクリアされます。

引数
nameフィールド名を指定します。
qlogic比較条件を指定します。次の文字列が使用できます。">" ">=" "<" "<=" "=" "<>"
value比較する値を指定します。Tはテンプレート型で char short int __int64 float double const _TCHAR* 型が使用できます。
戻り値
メソッドチェーンのために *thisが返されます。
注釈
valueにNULLポインターを渡すことはできません。NULLポインターを渡すと例外がスローされます。

/**

query & whereIsNotNull ( const _TCHAR *  name)
inline

最初のレコードマッチ条件が非NULLであると指定します
この関数を呼び出すと以前に指定されていたマッチ条件はクリアされます。

引数
nameフィールド名を指定します。
戻り値
メソッドチェーンのために *thisが返されます。
query & whereIsNull ( const _TCHAR *  name)
inline

最初のレコードマッチ条件がNULLであると指定します
この関数を呼び出すと以前に指定されていたマッチ条件はクリアされます。

引数
nameフィールド名を指定します。
戻り値
メソッドチェーンのために *thisが返されます。

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