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

您所在的步骤...

讨论

您刚刚对 Recordset 若干行中的数据进行了修改,ADO 有两种基本途径用于添加、删除和修改数据行。

其一是更改不是立即对 Recordset 进行而是对“复制缓冲区”进行,当您不想更改时,复制缓冲区中的改动将被放弃;如果想保留更改,复制缓冲区中的改动将应用于 Recordset

其二是当您声明行的工作已经完成时(即“立即”模式)将更改立刻传给数据源,否则将收集对行集合的所有更改,直到您声明该行集合的工作已经完成(即“批”模式)。这些模式将由 CursorLocationLockType 属性加以控制。

在“立即”模式中,每个 Update 方法的调用都将更改传送给数据源,而在“批”模式中,虽然每个 Update 调用和当前行位置移动都将更改存放在 Recordset 中,但只有 UpdateBatch 方法才可将更改传送给数据源。由于打开 Recordset 使用的是批模式,因此更新也使用批模式。

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

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

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

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

conn.BeginTrans
rs.UpdateBatch
...

下一页   步骤 6