更新和持久化数据

前面的章节讨论了如何使用 ADO 获取数据源中的数据、如何在数据中移动,以及如何编辑数据。 当然,如果应用程序的目标是允许用户对数据进行更改,则需要了解如何保存这些更改。 可以使用 Save 方法将 Recordset 更改保存到文件,也可以使用 UpdateUpdateBatch 方法将更改发送回数据源进行存储。

在前面的章节中,你更改了 Recordset的几行中的数据。 ADO 支持两个与添加、删除和修改数据行相关的基本概念。

第一个概念是,不会立即对 Recordset进行更改,而是对内部 复制缓冲区进行更改。 如果决定不希望更改,则放弃复制缓冲区中的修改。 如果决定保留更改,复制缓冲区中的更改将应用于 Recordset

第二个概念是,变更要么是在您声明某一行的工作完成后立即传播到数据源(即 立即 模式),要么是将对一组行所做的所有变更收集起来,直到您声明这组工作的完成后再进行传播(即 批处理 模式)。 LockType 属性确定对基础数据源进行更改的时机。 adLockOptimisticadLockPessimistic 指定即时模式,而 adLockBatchOptimistic 指定批处理模式。 CursorLocation 属性可能会影响 LockType 设置的可用性。 例如,当 CursorLocation 属性设置为 adUseClient时,不支持 adLockPessimistic 设置。

在即时模式下,Update 方法的每个调用都会将更改传播到数据源。 在批处理模式下,Update 或当前行位置移动的每个调用都将更改保存到复制缓冲区,但只有 UpdateBatch 方法将更改传播到数据源。

本节包含以下主题。