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

クエリー(フィルター)作成の補助をするためのベースクラス [詳解]

#include <table.h>

+ queryBase の継承関係図

公開型

enum  eOptimize { none = 0, joinHasOneOrHasMany = 1, combineCondition = 2 }
 クエリーの実行時に行われる最適化条件をセットします。 [詳解]
 

公開メンバ関数

 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 queryBasecreate ()
 

限定公開メンバ関数

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
 

詳解

クエリー(フィルター)作成の補助をするためのベースクラス

このクラスは、コンビニエンスC++APIで使用するためのベースクラスです。 通常のデータ操作で、このクラスを直接使用することはありません。

列挙型メンバ詳解

enum eOptimize

クエリーの実行時に行われる最適化条件をセットします。

列挙値
none 

特に最適化を行いません。

joinHasOneOrHasMany 

activeTableのJoinは、Joinのキー値が同じレコードを検索し、重複している場合はスキップして、サーバーにリクエストする値の数を最小化します。 しかしながら、hasMany-JoinやJoinのキー値がすべてユニークである場合は、この機能は利用できないか不要なものです。¥n 事前に、不要であるとわかっている場合は、optimize()でjoinHasOneOrHasManyを指定します。 これを指定すると重複値の検索処理をバイパスしてより高速にJoinできます。
activeTable::index()で指定したキーが重複キーであったり、マルチセグメントキーの一部のみJoinのキー値が指定された場合は内部で自動的に joinHasOneOrHasManyが指定されます。

combineCondition 

隣あっている2つのフィールドの条件を連結し1つの条件にするオプティマイズを行うかどうかを指定します。

構築子と解体子

コンストラクタ
reject(1) limit(0) direction(table::findForword) optimize(false)を呼び出したと同じに初期化します。

queryBase ( const queryBase r)

コピーコンストラクタ。

~queryBase ( )
virtual

仮想デストラクタ

関数詳解

void addField ( const _TCHAR *  name)

マッチしたレコードから抽出するフィールドを追加します。

void addLogic ( const _TCHAR *  name,
const _TCHAR *  logic,
const _TCHAR *  value 
)

レコードの最初のマッチ条件を追加します。
また、addSeekKeyValue()によって指定したキー値があればそれをクリア(すべて削除)します。

注釈
valueにNULLを渡すことはできません。NULLを渡すと例外がスローされます。
void addLogic ( const _TCHAR *  combine,
const _TCHAR *  name,
const _TCHAR *  logic,
const _TCHAR *  value 
)

レコードの2番目以降のマッチ条件を追加します。

注釈
valueにNULLを渡すことはできません。NULLを渡すと例外がスローされます。
void addSeekBookmark ( bookmark_td bm,
ushort_td  len,
bool  reset = false 
)

ブックマークによるレコード取得を複数まとめて行うオペレーション TD_KEY_SEEK_MULTI で使うブックマーク値を追加します。取得したいレコードの数分この関数を呼び出し てください。
resetにtrueを指定すると、既に追加されたブックマークを削除し、bmで指定された値を追加します また、addLogic()によって指定したマッチ条件があればそれをクリア(すべて削除)します。 TD_KEY_SEEK_MULTIオペレーションはマッチ条件を同時に指定することはできません。

注釈
この関数を呼び出すと内部で、ブックマークによるレコード取得を行うとマークされます。
addSeekKeyValue() と混在して使用することはできません。読み取り関数実行時は、キー値もしくはブックマーク のいずれかです。
注意
bmパラメータで渡されたブックマークは、内部ポインターのみコピーされます。 読み取り関数実行時までbmで渡されたオブジェクトは有効でなければなりません。
void addSeekKeyValue ( const _TCHAR *  value,
bool  reset = false 
)

ユニークなキー値のレコード取得を複数まとめて行うオペレーション TD_KEY_SEEK_MULTI で使うキー値を追加します。このオペレーションではrejectCountは自動で1にセットされます。この値以外 は使用できません。
キーがマルチセグメントキーの場合は、セグメントの数だけaddSeekKeyValueを呼び出してください。 TD_KEY_SEEK_MULTIオペレーションを実行する前にaddSeekKeyValueを呼び出す回数は 取得するレコード数 × キーのセグメント数 になります。
resetにtrueを指定すると、既に追加されたキー値を削除し、valueで指定された値を追加します また、addLogic()によって指定したマッチ条件があればそれをクリア(すべて削除)します。 TD_KEY_SEEK_MULTIオペレーションはマッチ条件を同時に指定することはできません。

注釈
この関数を呼び出すと内部でキー値によるレコード取得を行うとマークされます。
addSeekBookmark() と混在して使用することはできません。読み取り関数実行時は、キー値もしくはブックマーク のいずれかです。
valueにNULLを渡すことはできません。NULLを渡すと例外がスローされます。
void addSeekKeyValuePtr ( const void *  value,
ushort_td  len,
short  typeStr,
bool  reset = false 
)

addSeekKeyValue() と同じ目的の関数ですが、引数が文字列でなくvoid*型のポインター を渡します。この関数は通常使用しません。特別に最適化されたactiveTableのために あります。

queryBase & all ( )

すべてのレコードにマッチさせるFilterにします。 また抽出するフィールドは全フィールドになります。
addField() addLogic() addSeekKeyValue() のいずれかを呼び出すとこの呼び出しは無効になります。

queryBase & bookmarkAlso ( bool  v)

table::find() オペレーションの結果に各レコードのbookmarkを含めるどうかを指定します。

引数
vtrueを指定するとbookmarkを含めます。 P.SQLの場合はfalseを指定してもbookmarkを除くことはできません。 falseが有効なのはtransactdのみです。
void clearSeekKeyValues ( )

addSeekKeyValue() で追加したキー値をクリア(すべて削除)します。

void clearSelectFields ( )

addField()で追加したフィールドをクリア(すべて削除)します。

static queryBase * create ( )
static

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

queryBase & direction ( table::eFindType  v)

カレントレコードから検索する方向(前方または後方)を指定します。

table::eFindType getDirection ( ) const

direction() 設定された値を返します。

int getJoinKeySize ( ) const

joinKeySize() で指定されたキーの数を返します。

int getLimit ( ) const

limit() で指定された値を返します。

eOptimize getOptimize ( ) const

optimize() で指定された値を返します。

int getReject ( ) const

reject() で指定された値を返します。

const std::vector< std::_tstring > & getSeekKeyValues ( ) const
protected

addSeekKeyValue()によって追加されたキー値のリストを返します。

const std::vector< const void * > & getSeekValuesPtr ( ) const
protected

addSeekKeyValuePtr() によって追加されたキー値のリストを返します。

const _TCHAR * getSelect ( short  index) const

indexで指定された位置の addField() で設定されたフィールド名を返します。

const std::vector< std::_tstring > & getSelects ( ) const
protected

addField()によって追加された抽出フィールドリストを返します。

const std::vector< std::_tstring > & getWheres ( ) const
protected

addLogic()によって追加された抽出条件トークンのリストを返します。

const _TCHAR * getWhereToken ( short  index) const

indexで指定された位置の where() or_() and_() で設定されたトークンを返します。

bool isAll ( ) const

すべてのレコードにマッチさせるFilterかどうかを返します。

bool isBookmarkAlso ( ) const

table::find() オペレーションの結果に各レコードのbookmarkを含めるどうかを返します。

bool isSeekByBookmarks ( ) const

addSeekBookmarks() によって値がセットされているかどうかを返します。

bool isStopAtLimit ( ) const

stopAtLimit() で指定した値が返ります。

queryBase & joinKeySize ( int  v)

activeTable の join() outerJoin() に渡す際に、Joinのキーとなるフィールドの数を指定します。 この値は、activeTable::index() で指定したキーのセグメント数以下でなければなりません。

queryBase & limit ( int  v)

一回のサーバー側オペレーションで取得する最大レコード数を指定します。

ueryBase & operator= ( const queryBase r)

代入演算子。

queryBase & optimize ( eOptimize  v)

クエリーの実行時に行われる最適化条件をセットします。

  • none 特に最適化を行いません。
  • joinHasOneOrHasMany activeTableのJoinオペレーション時に、Joinのキーになる値がすべてユニーク である場合にこれを指定すると、キー値の重複の最適化処理をバイパスしてより高速にJoinできます。
  • combineCondition 隣あっている2つのフィールドの条件を連結し1つの条件にするオプティマイズを行うかどうかを指定します。現在のところ、combineConditionはプリペーアードクエリで使用することはできません。使用した場合、table::prepared() または table::setQuery() で STATUS_FILTERSTRING_ERROR が返ります。
queryBase & queryString ( const _TCHAR *  str,
bool  autoEscape = false 
)
引数
strフィルター文字列をセットします。
autoEscapestrで指定したフィルター文字列をエスケープ処理を行うかどうかを指定します。デフォルトはfalseです。 未エスケープの文字列を渡す場合はtrueを指定します。
queryBase & reject ( int  v)

リジェクトカウントを指定します。マッチしないレコードがリジェクトカウントに達すると検索を中止します。

void release ( )

queryBaseオブジェクトを破棄します。 create() で生成したオブジェクトは必ずこの関数で破棄してください。

void reserveSeekKeyValuePtrSize ( size_t  v)

addSeekKeyValuePtr() 関数によって追加されるキー値用のバッファーを事前に指定されたサイズを確保します。

引数
v確保するキー値の数を指定します。
void reserveSeekKeyValueSize ( size_t  v)

addSeekKeyValue() 関数によって追加されるキー値用のバッファーを事前に指定されたサイズを確保します。

引数
v確保するキー値の数を指定します。
void reset ( )

設定されたすべての条件を削除し初期状態に戻します。
初期状態はオブジェクトが作成された直後の状態と同様です。

void reverseAliasName ( const _TCHAR *  alias,
const _TCHAR *  src 
)

aliasが指定された処理で、このオブジェクト内で使われているalias名をオリジナル名に変更します。

引数
alias別名を指定します。
srcaliasで指定した別名に対するオリジナル名を指定します。
short selectCount ( ) const

addField() 関数によって追加された抽出フィールドの数を返します。

void setWhereToken ( short  index,
const _TCHAR *  v 
)

indexで指定された、where(and_ or_)トークンをvで指定した値に更新します。indexは ゼロからwhereTokens() 未満の値でなければなりません。

queryBase & stopAtLimit ( bool  v)

limit() は一回のサーバー側オペレーションで取得する最大レコード数を指定できます。 フィルター条件に合う結果レコードがそれ以上あった場合、table:: find系オペレーションは自動で複数回の検索呼び出しを行い、limitで指定した値に関わらずそれらすべてを取得します。
この複数回呼び出しを抑止したい場合は、vにtrueを指定します。検索は limit()で指定した数に達した場合即座に終了します。
stopAtLimit のデフォルトはfalseです。

const _TCHAR * toString ( ) const

設定された抽出フィールドと条件クエリー(フィルター)を文字列で返します。

short whereTokens ( ) const

where() or_() and_() で指定されたパラメータのトークンの総数を返します。

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