Partager via


Méthode ISearchQueryHelper ::GenerateSQLFromUserQuery (searchapi.h)

Génère une requête langage SQL (SQL) basée sur une chaîne de requête fournie par le client exprimée en syntaxe de requête avancée (AQS) ou en syntaxe de requête naturelle (NQS).

Syntaxe

HRESULT GenerateSQLFromUserQuery(
  [in]          LPCWSTR pszQuery,
  [out, retval] LPWSTR  *ppszSQL
);

Paramètres

[in] pszQuery

Type : LPCWSTR

Pointeur vers une chaîne Unicode terminée par null contenant une requête dans AQS ou NQS.

[out, retval] ppszSQL

Type : LPWSTR*

Reçoit l’adresse d’un pointeur vers une chaîne de requête SQL basée sur la requête dans le paramètre pszQuery .

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Cette méthode génère SQL sous la forme suivante :

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>]

La génération SQL utilise les paramètres spécifiés dans ISearchQueryHelper ::p ut_QueryTermExpansion, ISearchQueryHelper ::p ut_QueryContentProperties et ISearchQueryHelper ::p ut_QueryContentLocale.

ISearchQueryHelper ::GenerateSQLFromUserQuery utilise les paramètres régionaux régionaux. Toutefois, ISearchQueryHelper n’utilise pas les paramètres régionaux régionaux. Par conséquent, il existe des incohérences dans le SQL retourné par ISearchQueryHelper ::GenerateSQLFromUserQuery et ISearchQueryHelper pour les paramètres spécifiques à la région, tels que les formats de date. Par exemple, si vous définissez les paramètres régionaux pour date/heure sur autre chose que les paramètres régionaux système, par exemple en-CA si les paramètres régionaux système sont en-US, et que vous entrez Toybox -m -i "date:3/7/2008" -Y -s, le SQL retourné sera différent. Le SQL de ISearchQueryHelper ::GenerateSQLFromUserQuery aura analysé le 7/03/2008 selon en-CA (recherche d’éléments datés du 3 juillet 2008) tandis que le SQL de ISearchQueryHelper aura analysé le 7/07/3/2008 selon en-US (recherche d’éléments datés du 7 mars 2008).

Consultez l’exemple de code DSearch pour voir comment créer une classe pour une application console statique afin d’interroger Windows Search à l’aide de l’assembly Microsoft.Search.Interop pour ISearchQueryHelper.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP avec SP2, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 avec SP1 [applications de bureau uniquement]
Plateforme cible Windows
En-tête searchapi.h
Composant redistribuable Windows Desktop Search (WDS) 3.0

Voir aussi

ISearchQueryHelper

ISearchQueryHelper ::get_QuerySyntax

Interrogation de l’index programmatiquement

Interrogation de l’index avec la syntaxe SQL de Recherche Windows