次の方法で共有


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_QueryTermExpansionISearchQueryHelper::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

こちらもご覧ください

ISearchQueryHelper

ISearchQueryHelper::get_QuerySyntax

プログラムによるインデックスのクエリ

Windows Search SQL 構文を使用したインデックスのクエリ