CacheSize プロパティ (ADO)

適用先: Access 2013、Office 2013

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

設定と戻り値

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

注釈

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

注:

[!メモ] CacheSize は、 Recordset オブジェクトの Properties コレクションに含まれる Maximum Open Rows というプロバイダー固有のプロパティを基にしています。 CacheSizeMaximum Open Rows より大きい値に設定することはできません。 プロバイダーが開くことのできる行の数を変更するには、 Maximum Open Rows を設定します。

CacheSize の値は、 Recordset オブジェクトの存続期間中に調整できますが、この値を変更しても、それ以降にデータ ソースから取得されてキャッシュに格納されるレコードの数にしか反映されません。 プロパティ値を変更しただけでは、キャッシュの現在の内容は変更されません。

取り込まれるレコード数が CacheSize で指定された数よりも少ない場合は、残りのレコードが返され、エラーは発生しません。

CacheSize を 0 に設定することは許可されておらず、エラーが返されます。

キャッシュから取得したレコードには、他のユーザーが平行してソース データに加えた変更は反映されていません。 すべてのキャッシュ データを強制的に更新するには、Resync メソッドを使用します。

CacheSize を 1 より大きい値に設定した場合は、レコードの取得後に削除が発生していると、移動メソッド (MoveMoveFirst、MoveLast、MoveNext、および MovePrevious) で削除済みのレコードに移動する可能性があります。 いったん最初の取得を行うと、削除された行のデータ値にアクセスしようとしない限り、以降の削除がデータ キャッシュに反映されることはありません。 一方、 CacheSize を 1 に設定した場合は、削除された行は取得できないため、この問題を排除できます。