Share via


Cache de resultados com IDirectorySearch

A preferência ADS_SEARCHPREF_CACHE_RESULTS armazena em cache o conjunto de resultados no cliente. O cache de resultados permite que um aplicativo retenha um conjunto de resultados recuperado e percorra as linhas recuperadas novamente. Ele também habilita o suporte ao cursor onde os métodos IDirectorySearch::GetNextRow e IDirectorySearch::GetPreviousRow podem ser usados para mover para cima e para baixo o conjunto de resultados.

Por padrão, o cache de resultados está desabilitado. O cache de resultados deve ser habilitado se qualquer uma das seguintes opções for verdadeira:

  • Se o mesmo conjunto de resultados deve ser enumerado várias vezes sem executar a pesquisa novamente no servidor.
  • Se a execução da pesquisa consumir muitos recursos no servidor (conexão lenta, conjunto de resultados grande ou consulta complexa).
  • Se o suporte do cursor for necessário.

Desative o cache se o aplicativo precisar reduzir os requisitos de memória para armazenar em cache um grande conjunto de resultados no cliente.

O cache de resultados aumenta os requisitos de memória no cliente, portanto, o cache de resultados deve ser desabilitado se isso for uma preocupação.

Para habilitar o cache de resultados, defina uma opção de pesquisa ADS_SEARCHPREF_CACHE_RESULTS com um valor ADSTYPE_BOOLEAN TRUE na matriz ADS_SEARCHPREF_INFO passada para o método IDirectorySearch::SetSearchPreference .

O exemplo de código a seguir mostra como habilitar o cache de resultados.

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