次の方法で共有


CacheSize の使用

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

手記

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

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

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

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

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

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