CacheSize プロパティ (ADO)

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

設定と戻り値

0 より大きい必要がある Long 値を設定または返します。 既定値は 1 です。

注釈

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

注意

CacheSize は、(Recordset オブジェクトの Properties コレクション内の) プロバイダー固有のプロパティ Maximum Open Rows に基づいています。 Maximum Open Rows 数を超える値に CacheSize を設定することはできません。 プロバイダーによって開くことができる行数を変更するには、Maximum Open Rows を設定します。

CacheSize の値は Recordset オブジェクトの有効期間中に調整できますが、この値を変更すると、データ ソースからの後続の取得後のキャッシュ内のレコード数にのみ影響します。 プロパティ値を変更するだけでは、キャッシュの現在の内容は変更されません。

CacheSize で指定されているレコード数よりも取得するレコードが少ない場合、プロバイダーは残りのレコードを返し、エラーは発生しません。

CacheSize の 0 の設定は許可されず、エラーが返されます。

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

CacheSize が 1 より大きい値に設定されている場合、レコードの取得後に削除が発生した場合、ナビゲーション メソッド (MoveMoveFirst、MoveLast、MoveNext、および MovePrevious) によって削除されたレコードへのナビゲーションが行われる可能性があります。 最初のフェッチ後、削除された行からデータ値にアクセスするまで、後続の削除はデータ キャッシュに反映されません。 ただし、CacheSize を 1 に設定すると、削除された行をフェッチできないため、この問題は解消されます。

適用対象

Recordset オブジェクト (ADO)

参照

CacheSize プロパティの例 (VB)
CacheSize プロパティの例 (VC++)
CacheSize プロパティの例 (JScript)