IDirectorySearchを使用した結果キャッシュ

ADS_SEARCHPREF_CACHE_RESULTS設定は、結果セットをクライアントにキャッシュします。 結果キャッシュを使用すると、アプリケーションは取得した結果セットを保持し、取得した行を再度調べることができます。 また、IDirectorySearch::GetNextRowメソッドとIDirectorySearch::GetPreviousRowメソッドを使用して結果セットを上下に移動できるカーソルのサポートも有効になります。

既定では、結果キャッシュは無効になっています。 次のいずれかに該当する場合は、結果キャッシュを有効にする必要があります。

  • サーバーで検索を再実行せずに、同じ結果セットを複数回列挙する必要がある場合。
  • 検索の実行がサーバーでリソースを集中的に消費する場合(低速な接続、大規模な結果セット、または複雑なクエリ)。
  • カーソルのサポートが必要な場合。

アプリケーションで、クライアントで大きな結果セットをキャッシュするためのメモリ要件を減らす必要がある場合は、キャッシュを無効にします。

結果をキャッシュすると、クライアントのメモリ要件が増加するため、これが問題になる場合は、結果キャッシュを無効にする必要があります。

結果キャッシュを有効にするには、IDirectorySearch::SetSearchPreferenceメソッドに渡されたADS_SEARCHPREF_INFO配列のADSTYPE_BOOLEAN値がTRUEADS_SEARCHPREF_CACHE_RESULTS検索オプションを設定します。

次のコード例は、結果キャッシュを有効にする方法を示しています。

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