Compartir a través de


Almacenamiento en caché de resultados con IDirectorySearch

El ADS_SEARCHPREF_CACHE_RESULTS preferencias almacena en caché el conjunto de resultados en el cliente. El almacenamiento en caché de resultados permite a una aplicación conservar un conjunto de resultados recuperado y volver a recorrer las filas recuperadas. También permite la compatibilidad con cursores donde se pueden usar los métodos IDirectorySearch::GetNextRow e IDirectorySearch::GetPreviousRow para subir y bajar el conjunto de resultados.

De forma predeterminada, el almacenamiento en caché de resultados está deshabilitado. El almacenamiento en caché de resultados debe estar habilitado si se cumple alguna de las siguientes condiciones:

  • Si se debe enumerar el mismo conjunto de resultados varias veces sin volver a realizar la búsqueda en el servidor.
  • Si la búsqueda consume muchos recursos en el servidor (conexión lenta, conjunto de resultados grande o consulta compleja).
  • Si se requiere compatibilidad con cursores.

Desactive el almacenamiento en caché si la aplicación debe reducir los requisitos de memoria para almacenar en caché un conjunto de resultados grande en el cliente.

El almacenamiento en caché de resultados aumenta los requisitos de memoria en el cliente, por lo que el almacenamiento en caché de resultados debe deshabilitarse si se trata de un problema.

Para habilitar el almacenamiento en caché de resultados, establezca una opción de búsqueda ADS_SEARCHPREF_CACHE_RESULTS con un valor de ADSTYPE_BOOLEAN true en la matriz de ADS_SEARCHPREF_INFO que se pasa al método IDirectorySearch::SetSearchPreference.

En el ejemplo de código siguiente se muestra cómo habilitar el almacenamiento en caché de resultados.

ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_CACHE_RESULTS;
SearchPref.vValue.dwType = ADSTYPE_BOOLEAN;
SearchPref.vValue.Boolean = TRUE;