CDaoRecordset::FillCache
レコードセットから指定されたレコード数分キャッシュされます。
void FillCache(
long* pSize = NULL,
COleVariant* pBookmark = NULL
);
パラメーター
pSize
キャッシュに設定する行数を指定します。 このパラメーターを省略すると、値は基になる DAO オブジェクトの CacheSize プロパティの設定によって決まります。pBookmark
ブックマークを指定する COleVariant。 キャッシュの設定は、このブックマークで示されたレコードから開始されます。 このパラメーターを省略すると、キャッシュは基になる DAO オブジェクトの CacheStart プロパティで示されたレコードから開始されます。
解説
キャッシングは、リモート サーバーからのデータの取り出し、フェッチを行うアプリケーションのパフォーマンスを向上させます。 キャッシュは、アプリケーション実行中にデータが再度要求されるという仮定のもとに、サーバーから直前にフェッチされたデータを保持するローカル メモリ領域です。 データが要求されると、Microsoft Jet データベース エンジンは、時間がかかるサーバーからのデータのフェッチの前に、キャッシュを調べます。 非 ODBC のデータ ソースにデータ キャッシュを使用しても、データはキャッシュに保存されないため、効果はありません。
フェッチされるレコードがキャッシュに入るまで待たなくても、FillCache メンバー関数を呼び出すことで、いつでも明示的にキャッシュに移すことができます。 FillCache は、一度に 1 レコードではなく数レコードをフェッチするので、キャッシュを最も速く設定できる方法となっています。 たとえば、1 画面分のレコードが表示されている間に、アプリケーションで FillCache を呼び出して次の 1 画面分のレコードをフェッチさせることができます。
レコードセット オブジェクトでアクセスされる ODBC データベースは、ローカル キャッシュを持つことができます。 キャッシュを作成するには、リモート データ ソースからレコードセット オブジェクトを開き、レコードセットの SetCacheSize メンバー関数と SetCacheStart メンバー関数を呼び出します。 lSize と lBookmark が形成する範囲の一部、または全体が SetCacheSize および SetCacheStart で指定された範囲外になると、その範囲外になるレコードセットの部分は無視され、キャシュに読み込まれません。 FillCache がリモート データ ソースにあるレコード数よりも多い数のレコードを要求すると、残りのレコードがフェッチされるだけで、例外はスローされません。
キャッシュからフェッチされたレコードには、ほかのユーザーが並列してデータ ソースに加えた変更を反映しません。
FillCache は、まだキャッシュされていないレコードだけをフェッチします。 キャッシュされているすべてのデータを強制的に更新するには、パラメーター lSize に 0 を渡して SetCacheSize メンバー関数を呼び、パラメーター lSize に元の値を渡して再度 SetCacheSize を呼び出します。その後 FillCache を呼び出します。
関連情報については、DAO ヘルプの「FillCache Method」を参照してください。
必要条件
**ヘッダー:**afxdao.h