更新和保留数据

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

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

第一个概念是,更改不是立即对 Recordset 进行的;而是在内部复制缓冲区中进行的。 如果你决定不想要更改,就会丢弃复制缓冲区中的修改。 如果你决定保留更改,复制缓冲区中的更改就会应用于 Recordset。

第二个概念是,在你声明完成一行的工作后,更改会立即传播到数据源(即,即时模式),或者,在你声明一组行的工作完成之前,会收集对这一组行所做的所有更改(即批量模式)。 LockType 属性确定何时对基础数据源进行更改。 adLockOptimistic 或 adLockPessimistic 指定即时模式,而 adLockBatchOptimistic 指定批量模式。 CursorLocation 属性可能会影响哪些 LockType 设置是可用的。 例如,如果 CursorLocation 属性设置为 adUseClient,则不支持 adLockPessimistic 设置。

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

本部分包含以下主题。