IRowsetPrioritization
COM公式ドキュメント
このクエリで指定されたスコープに対する、現在のインデクサーの優先度レベルを設定または取得します。
解説(Remarks)
このインターフェイスは、インデクサーのロウセットに対して IUnknown::QueryInterface メソッド を呼び出して取得します。ロウセットの優先度制御を使用するには、クエリを実行する前に、OLE DB の ICommandProperties::SetProperties メソッドで DBPROP_ENABLEROWSETEVENTS を TRUE に設定しておく必要があります。
IRowsetPrioritization::SetScopePriority は、クエリに属するスコープの優先度と、クエリのスコープ内にインデックス作成待ちのドキュメントが存在する場合にスコープ統計イベントが発生する間隔を設定します。このイベントは、優先度レベルが既定に設定されている場合に発生します。
IRowsetPrioritization::GetScopeStatistics を使用すると、スコープ内でインデックスが作成されている項目数、スコープ内で追加待ちのドキュメント数、およびこのスコープ内で再インデックスが必要なドキュメント数を取得できます。
インデックス作成イベントの優先度を制御する方法を示すサンプルについては、SearchEvents サンプルを参照してください。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このクエリで指定されたスコープに対する、現在のインデクサーの優先度レベルを設定します。
| priority | PRIORITY_LEVEL | in | 新しく設定するインデクサーの優先度レベルを、PRIORITY_LEVEL 列挙型で指定します。 |
| scopeStatisticsEventFrequency | DWORD | in | クエリのスコープ内にインデックス作成待ちのドキュメントが存在する場合に、スコープ統計イベントを発生させる間隔を指定します。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
SearchEvents コードサンプル も参照してください。
このクエリで指定されたスコープに対する、現在のインデクサーの優先度レベルを取得します。
| priority | PRIORITY_LEVEL* | out | 現在のインデクサーの優先度レベルが、PRIORITY_LEVEL 列挙型として格納されます。 |
| scopeStatisticsEventFrequency | DWORD* | out | クエリのスコープ内にインデックス作成待ちのドキュメントが存在する場合に、スコープ統計イベントが発生する間隔です。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
SearchEvents コードサンプル も参照してください。
このクエリで指定されたスコープを説明する情報を取得します。
| indexedDocumentCount | DWORD* | out | スコープ内で現在インデックスが作成されているドキュメントの総数です。 |
| oustandingAddCount | DWORD* | out | スコープ内でまだインデックスが作成されていないドキュメントの総数です。これらのドキュメントは indexedDocumentCount にはまだ含まれていません。 |
| oustandingModifyCount | DWORD* | out | スコープ内でインデックスが作成済みで、再インデックスが必要なドキュメントの総数です。これらのドキュメントは indexedDocumentCount に含まれています。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
成功した場合は S_OK を返します。スコープ内にインデックスが作成されたドキュメントが存在しない場合は HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND) を、それ以外の場合はエラー値を返します。
GetScopeStatistics イベントを使用すると、スコープ内でインデックスが作成されている項目数、スコープ内で追加待ちのドキュメント数、およびこのスコープ内で再インデックスが必要なドキュメント数を取得できます。
SearchEvents コードサンプル も参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IRowsetPrioritization "{42811652-079D-481B-87A2-09A69ECC5F44}" #usecom global IRowsetPrioritization IID_IRowsetPrioritization "{}" #comfunc global IRowsetPrioritization_SetScopePriority 3 int,int #comfunc global IRowsetPrioritization_GetScopePriority 4 var,var #comfunc global IRowsetPrioritization_GetScopeStatistics 5 var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IRowsetPrioritization "{42811652-079D-481B-87A2-09A69ECC5F44}" #usecom global IRowsetPrioritization IID_IRowsetPrioritization "{}" #comfunc global IRowsetPrioritization_SetScopePriority 3 int,int #comfunc global IRowsetPrioritization_GetScopePriority 4 sptr,sptr #comfunc global IRowsetPrioritization_GetScopeStatistics 5 sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。