CacheSize プロパティ

       

ローカル メモリにキャッシュされた Recordset オブジェクトのレコード数を示します。

設定値と戻り値

0 より大きい長整数型 (Long) の値を設定します。また、値の取得も可能です。既定値は 1 です。

解説

プロバイダがバッファに保存するレコード数、およびローカル メモリに一度に取り込むレコード数を制御するには、CacheSize プロパティを使います。たとえば、CacheSize が 10 の場合、最初に Recordset オブジェクトが開くと、プロバイダは最初の 10 個のレコードをローカル メモリに取り込みます。Recordset オブジェクトを移動する間、プロバイダはローカル メモリ バッファからデータを返します。キャッシュ内の最後のレコードを通過すると、プロバイダは次の 10 個のレコードをデータ ソースからキャッシュに取り込みます。

このプロパティの値は、Recordset オブジェクトが開いている間に変更できますが、変更した値は、次にデータ ソースからキャッシュへ取り込むレコード数に対してのみ適用されます。プロパティ値を変更しただけでは、現在のキャッシュの内容は変更されません。

取り込めるレコード数が CacheSize の指定値より少なくても、プロバイダは残りのレコードを返し、エラーにはなりません。

CacheSize プロパティは 0 には設定できません。エラーになります。

ほかのユーザーがソース データを同時に変更しても、キャッシュから取り込まれたレコードには反映されません。キャッシュに格納されているすべてのデータを強制的に更新するには、Resync メソッドを使います。

CacheSize に 1 を超える値を設定して、レコードを取得した後に削除を行った場合、移動メソッド (MoveMoveFirst、MoveLast、MoveNext、MovePrevious) を実行すると、削除レコードに移動します。最初のフェッチ後の削除は、削除された行からデータ値にアクセスするまで、データ キャッシュには反映されません。ただし、CacheSize に 1 を設定すると、削除行をフェッチできなくなるのでこの問題は解消できます。