ISearchQueryHelper::GenerateSQLFromUserQuery 方法 (searchapi.h)
基于客户端提供的查询字符串生成结构化查询语言 (SQL) 查询,该字符串以高级查询语法 (AQS) 或自然查询语法 (NQS) 表示。
语法
HRESULT GenerateSQLFromUserQuery(
[in] LPCWSTR pszQuery,
[out, retval] LPWSTR *ppszSQL
);
参数
[in] pszQuery
类型: LPCWSTR
指向以 null 结尾的 Unicode 字符串的指针,其中包含 AQS 或 NQS 中的查询。
[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-CA(如果系统区域设置为 en-US),并输入 Toybox -m -i "date:3/7/2008" -Y -s
,则返回的 SQL 将有所不同。
ISearchQueryHelper::GenerateSQLFromUserQuery 的 SQL 将在 2008 年 3 月 7 日进行分析,根据 en-CA (查找日期为 7 月 3 日的项目, 2008) 而来自 ISearchQueryHelper 的 SQL 将在 2008 年 3 月 7 日分析 2008 年 3 月 7 日,根据 en-US (查找日期为 2008 年 3 月 7 日的项目) 。
查看 DSearch 代码示例 ,了解如何为静态控制台应用程序创建类,以使用 适用于 ISearchQueryHelper 的 Microsoft.Search.Interop 程序集查询 Windows 搜索。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP SP2、Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 SP1 [仅限桌面应用] |
目标平台 | Windows |
标头 | searchapi.h |
可再发行组件 | Windows 桌面搜索 (WDS) 3.0 |