步骤 5:更新数据(ADO 教程)

您所在的步骤...

讨论

您刚刚对 Recordset 若干行中的数据进行了更改。对于添加、删除和修改数据行,ADO 有两个基本概念。

第一个概念是不立即更改 Recordset 而是将更改写入内部“复制缓冲区”。如果您不想进行更改,复制缓冲区中的更改将被放弃;如果想保留更改,复制缓冲区中的改动将应用到 Recordset

第二个概念是只要您声明行的工作已经完成则将更改立刻传播到数据源(即“立即”模式)。或者只是收集对行集合的所有更改,直到您声明该行集合的工作已经完成(即“批”模式)。这些模式将由 CursorLocationLockType 属性控制。

在“立即”模式中,每次调用 Update 方法都会将更改传播到数据源。而在“批”模式中,每次调用 Update 或移动当前行位置时,更改都被保存到 Recordset 中,只有 UpdateBatch 方法才可将更改传送给数据源。使用批模式打开 Recordset,因此更新也使用批模式。

注意   Update 可采用简捷的形式将更改用于单个字段或将一组更改用于一组字段,然后再进行更改,这样可以一步完成更新操作。

可选择在“事务”中进行更新。实际上,您可以使用事务来确保多个相互关联的操作或者全部成功执行,或者全部取消。在此情况下,事务不是必需的。

事务可在一段相当长的时间内分配和保持数据源上的有限资源,因此建议事务的存在时间越短越好。(这便是本教程不在进行连接之初就开始事务的原因。)

为使用教程,将您的批更新括在事务中:

conn.BeginTrans
rs.UpdateBatch
...

下一步   步骤 6