更新和持久化数据
前面的章节讨论了如何使用 ADO 获取数据源中的数据、如何在数据中移动,以及如何编辑数据。 当然,如果应用程序的目标是允许用户对数据进行更改,则需要了解如何保存这些更改。 可以使用 Save 方法将 Recordset 更改保存到文件,也可以使用 Update 或 UpdateBatch 方法将更改发送回数据源进行存储。
在前面的章节中,你更改了 Recordset的几行中的数据。 ADO 支持两个与添加、删除和修改数据行相关的基本概念。
第一个概念是,不会立即对 Recordset进行更改,而是对内部 复制缓冲区进行更改。 如果决定不希望更改,则放弃复制缓冲区中的修改。 如果决定保留更改,复制缓冲区中的更改将应用于 Recordset。
第二个概念是,变更要么是在您声明某一行的工作完成后立即传播到数据源(即 立即 模式),要么是将对一组行所做的所有变更收集起来,直到您声明这组工作的完成后再进行传播(即 批处理 模式)。 LockType 属性确定对基础数据源进行更改的时机。 adLockOptimistic 或 adLockPessimistic 指定即时模式,而 adLockBatchOptimistic 指定批处理模式。 CursorLocation 属性可能会影响 LockType 设置的可用性。 例如,当 CursorLocation 属性设置为 adUseClient时,不支持 adLockPessimistic 设置。
在即时模式下,Update 方法的每个调用都会将更改传播到数据源。 在批处理模式下,Update 或当前行位置移动的每个调用都将更改保存到复制缓冲区,但只有 UpdateBatch 方法将更改传播到数据源。
本节包含以下主题。