ISearchQueryHelper::GenerateSQLFromUserQuery メソッド (searchapi.h)
高度なクエリ構文 (AQS) または自然クエリ構文 (NQS) で表されるクライアント指定のクエリ文字列に基づいて、構造化照会言語 (SQL) クエリを生成します。
構文
HRESULT GenerateSQLFromUserQuery(
[in] LPCWSTR pszQuery,
[out, retval] LPWSTR *ppszSQL
);
パラメーター
[in] pszQuery
種類: LPCWSTR
AQS または NQS のクエリを含む null で終わる Unicode 文字列へのポインター。
[out, retval] ppszSQL
種類: LPWSTR*
pszQuery パラメーターのクエリに基づいて、SQL クエリ文字列へのポインターのアドレスを受け取ります。
戻り値
種類: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
このメソッドは、次の形式で SQL を生成します。
SELECT <QuerySelectColumns> FROM <CatalogName that created query helper>
WHERE <Result of interpreting the User query passed into this function according to QuerySyntax>
[ AND|OR <QueryWhereRestrictions>]
SQL 生成では、 ISearchQueryHelper::p ut_QueryTermExpansion、 ISearchQueryHelper::p ut_QueryContentProperties、 および ISearchQueryHelper::p ut_QueryContentLocale で指定された設定が使用されます。
ISearchQueryHelper::GenerateSQLFromUserQuery は 、地域のロケール設定を使用します。 ただし、 ISearchQueryHelper では地域のロケール設定は使用されません。 その結果、 ISearchQueryHelper::GenerateSQLFromUserQuery および ISearchQueryHelper から返される SQL では、日付形式などのリージョン固有の設定に不整合があります。 たとえば、日付/時刻のロケールをシステム ロケール以外に設定した場合 (システム ロケールが en-US の場合は en-CA など)、「」と入力 Toybox -m -i "date:3/7/2008" -Y -s
すると、返される SQL は異なります。
ISearchQueryHelper::GenerateSQLFromUserQuery の SQL は、en-CA に従って 2008 年 3 月 7 日に解析されます (2008 年 7 月 3 日のアイテムをシーク中)、ISearchQueryHelper の SQL は en-US に従って 2008 年 3 月 7 日に解析されます (2008 年 3 月 7 日のアイテムをシーク)。
DSearch コード サンプルをチェックアウトして、ISearchQueryHelper の Microsoft.Search.Interop アセンブリを使用して Windows Search にクエリを実行する静的コンソール アプリケーションのクラスを作成する方法を確認します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | searchapi.h |
再頒布可能パッケージ | Windows デスクトップ検索 (WDS) 3.0 |