来源:www.cncfan.com | 2006-1-21 | (有2401人读过)
您所在的步骤...
连接数据源。
可选择创建表示 SQL 查询命令的对象。
可选择在 SQL 命令中将值指定为变量参数。
执行命令,如果命令按行返回,将行存储在存储对象中。
可选择对数据进行定位、检查、操作和编辑。
适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务中嵌入更新。
在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。 讨论
您刚刚对 Recordset 若干行中的数据进行了修改,ADO 有两种基本途径用于添加、删除和修改数据行。
其一是更改不是立即对 Recordset 进行而是对“复制缓冲区”进行,当您不想更改时,复制缓冲区中的改动将被放弃;如果想保留更改,复制缓冲区中的改动将应用于 Recordset。
其二是当您声明行的工作已经完成时(即“立即”模式)将更改立刻传给数据源,否则将收集对行集合的所有更改,直到您声明该行集合的工作已经完成(即“批”模式)。这些模式将由 CursorLocation 和 LockType 属性加以控制。
在“立即”模式中,每个 Update 方法的调用都将更改传送给数据源,而在“批”模式中,虽然每个 Update 调用和当前行位置移动都将更改存放在 Recordset 中,但只有 UpdateBatch 方法才可将更改传送给数据源。由于打开 Recordset 使用的是批模式,因此更新也使用批模式。
注意 Update 可采用简捷的形式将更改用于单个字段或将一组更改用于一组字段,然后再进行更改,这样可以一步完成更新操作。
可选择在“事务”中进行更新。实际上,您可以使用事务来确保多个相互关联的操作或者全部成功执行,或者全部取消。在此情况下,事务不是必须的。
事务可在一段相当长的时间内分配和保持数据源上的有限资源,因此建议事务的存在时间越短越好。(这便是本教程不在进行连接之初就开始事务的原因。)
为使用教程,将您的批更新括在事务中:
conn.BeginTrans rs.UpdateBatch ...
|