Mise en cache des résultats avec IDirectorySearch
La préférence des _ _ _ résultats du cache SEARCHPREF ADS met en cache le jeu de résultats sur le client. La mise en cache des résultats permet à une application de conserver un jeu de résultats récupéré et de repasser les lignes récupérées. Il permet également la prise en charge des curseurs là où les méthodes IDirectorySearch :: GetNextRow et IDirectorySearch :: GetPreviousRow peuvent être utilisées pour monter et descendre dans le jeu de résultats.
Par défaut, la mise en cache des résultats est désactivée. La mise en cache des résultats doit être activée si l’une des conditions suivantes est vraie :
- Si le même jeu de résultats doit être énuméré plusieurs fois sans effectuer à nouveau la recherche sur le serveur.
- Si l’exécution de la recherche est gourmande en ressources sur le serveur (connexion lente, jeu de résultats volumineux ou requête complexe).
- Si la prise en charge du curseur est requise.
Désactivez la mise en cache si votre application doit réduire les besoins en mémoire pour la mise en cache d’un jeu de résultats volumineux sur le client.
La mise en cache des résultats augmente les besoins en mémoire sur le client, donc la mise en cache des résultats doit être désactivée si cela pose problème.
Pour activer la mise en cache des résultats, définissez une option de recherche de _ _ _ cache SEARCHPREF ADS avec la valeur _ booléenne ADSTYPE true dans le tableau d' _ _ informations SEARCHPREF ADS transmis à la méthode IDirectorySearch :: SetSearchPreference .
L’exemple de code suivant montre comment activer la mise en cache des résultats.
ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_CACHE_RESULTS;
SearchPref.vValue.dwType = ADSTYPE_BOOLEAN;
SearchPref.vValue.Boolean = TRUE;