Zwischenspeichern von Ergebnissen mit IDirectorySearch
Die ADS_SEARCHPREF_CACHE_RESULTS Einstellung speichert das Resultset auf dem Client zwischen. Mithilfe der Ergebniszwischenspeicherung kann eine Anwendung ein abgerufenes Resultset beibehalten und die abgerufenen Zeilen erneut durchlaufen. Außerdem wird die Cursorunterstützung aktiviert, bei der die Methoden IDirectorySearch::GetNextRow und IDirectorySearch::GetPreviousRow verwendet werden können, um das Resultset nach oben und unten zu verschieben.
Standardmäßig ist das Zwischenspeichern von Ergebnissen deaktiviert. Die Ergebniszwischenspeicherung sollte aktiviert werden, wenn eine der folgenden Punkte zutrifft:
- Wenn das gleiche Resultset mehrmals aufgezählt werden muss, ohne die Suche erneut auf dem Server auszuführen.
- Wenn die Suche auf dem Server ressourcenintensiv ist (langsame Verbindung, große Resultset oder komplexe Abfrage).
- Wenn Cursorunterstützung erforderlich ist.
Deaktivieren Sie die Zwischenspeicherung, wenn Ihre Anwendung den Arbeitsspeicherbedarf für das Zwischenspeichern eines großen Resultsets auf dem Client reduzieren muss.
Das Zwischenspeichern von Ergebnissen erhöht die Arbeitsspeicheranforderungen auf dem Client, sodass das Zwischenspeichern von Ergebnissen deaktiviert werden sollte, wenn dies ein Problem darstellt.
Um die Ergebniszwischenspeicherung zu aktivieren, legen Sie eine ADS_SEARCHPREF_CACHE_RESULTS Suchoption mit dem ADSTYPE_BOOLEAN Wert TRUE im ADS_SEARCHPREF_INFO Array fest, das an die IDirectorySearch::SetSearchPreference-Methode übergeben wird.
Im folgenden Codebeispiel wird gezeigt, wie Sie das Zwischenspeichern von Ergebnissen aktivieren.
ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_CACHE_RESULTS;
SearchPref.vValue.dwType = ADSTYPE_BOOLEAN;
SearchPref.vValue.Boolean = TRUE;