CacheSize 屬性 (ADO)

指出 Recordset 物件中快取至本機記憶體的記錄數目。

設定和傳回值

會設定或傳回 Long 值 (必須大於 0)。 預設值為 1。

備註

使用 CacheSize 屬性來控制從提供者一次擷取至本機記憶體中的記錄數目。 例如,如果 CacheSize 為 10,在第一次開啟 Recordset 物件之後,提供者會將前 10 筆記錄擷取到本機記憶體中。 當您在 Recordset 物件之間移動時,提供者會從本機記憶體緩衝區傳回資料。 一旦您移出快取中的最後一筆記錄,提供者就會將接下來的 10 筆記錄從資料來源擷取到快取中。

注意

CacheSize 是以 Maximum Open Rows 提供者特定屬性 (在 Recordset 物件的 Properties 集合中) 為基礎。 您無法將 CacheSize 設定為大於開啟資料列的上限的值。 若要修改提供者可以開啟的資料列數目,請設定 [開啟資料列的上限]。

CacheSize 的值可以在 Recordset 物件的存留期間進行調整,但變更此值只會影響從資料來源後續擷取後快取中的記錄數目。 單獨變更屬性值並不會變更快取的目前內容。

如果擷取的記錄少於 CacheSize 指定的數目,提供者會傳回剩餘的記錄,而且不會發生任何錯誤。

不允許 CacheSize 設定為零,會傳回錯誤。

從快取擷取的記錄不會反映其他使用者對來源資料所做的並行變更。 若要強制更新所有快取的資料,請使用 Resync 方法。

如果 CacheSize 設為大於 1 的值,如果在擷取記錄之後刪除,巡覽方法 (MoveMoveFirst、MoveLast、MoveNext 和 MovePrevious) 可能對導致巡覽至已刪除的記錄。 在初始擷取之後,在您嘗試從已刪除的資料列存取資料值之前,後續刪除將不會反映在資料快取中。 不過,將 CacheSize 設定為 1 會消除此問題,因為無法擷取已刪除的資料列。

套用至

Recordset 物件 (ADO)

另請參閱

CacheSize 屬性範例 (VB)
CacheSize 屬性範例 (VC++)
CacheSize 屬性範例 (JScript)