更新和持久化資料
上述章節已討論如何使用 ADO 來取得數據源中的數據、如何在數據中四處移動,甚至是如何編輯數據。 當然,如果應用程式的目標是允許使用者對數據進行變更,您必須瞭解如何儲存這些變更。 您可以使用 Save 方法,將 Recordset 變更保存至檔案,也可以使用 Update 或 UpdateBatch 方法,將變更傳回記憶體的數據源。
在上述章節中,您已在 Recordset的數個數據列中變更數據。 ADO 支援兩個與新增、刪除和修改數據列相關的基本概念。
第一個概念是,變更不會立即作用在 Recordset上,而是先作用在內部的 複製緩衝區。 如果您決定不想要變更,則會捨棄複製緩衝區中的修改。 如果您決定保留變更,複製緩衝區中的變更會套用至 Recordset。
第二個概念是,當您宣告某一資料列的工作完成時,變更會立即傳播至資料來源(也就是,立即 模式),或者將一組資料列的所有變更收集起來,直到您宣告該集合的工作完成(也就是 批次 模式)。 LockType 屬性會決定對基礎數據源進行變更的時機。 adLockOptimistic 或 adLockPessimistic 指定即時模式,adLockBatchOptimistic 則指定批次模式。 CursorLocation 屬性可能會影響哪些 LockType 設定可供使用。 例如,如果 CursorLocation 屬性設定為 adUseClient,則不支援 adLockPessimistic 設定。
在立即模式中,Update 方法的每個調用都會將變更傳播至數據源。 在批次模式中,Update 或目前數據列位置移動的每個調用都會將變更儲存至複製緩衝區,但只有 UpdateBatch 方法會將變更傳播至數據源。
本節包含下列主題。