将所有挂起的批更新写入磁盘。
语法
recordset.UpdateBatch AffectRecords
参数
AffectRecords 可选,AffectEnum 值。决定 UpdateBatch 方法所影响的记录数目。可以为如下常量之一。
常量 | 说明 |
adAffectCurrent | 只写入当前记录的挂起更改。 |
adAffectGroup | 写入满足当前 Filter 属性设置的记录所发生的挂起更改。必须将 Filter 属性设置为某个有效的预定义常量才能使用该选项。 |
adAffectAll | (默认值)。写入 Recordset 对象中所有记录的挂起更改,包括由于当前 Filter 属性设置而隐藏的任何记录。 |
adAffectAllChapters | 写入所有子集的挂起更改。 |
说明
按批更新模式修改 Recordset 对象时,使用 UpdateBatch 方法可将 Recordset 对象中的所有更改传递到基本数据库。
如果 Recordset 对象支持批更新,那么可以将一个或多个记录的多重更改缓存在本地,然后再调用 UpdateBatch 方法。如果在调用 UpdateBatch 方法时正在编辑当前记录或者添加新的记录,那么在将批更新传送到提供者之前,ADO 将自动调用 Update 方法保存对当前记录的所有挂起更改。
注意 只能对键集或静态游标使用批更新。
如果由于与基本的数据冲突而导致对所有或任意记录的传送更改失败(如其他用户已将记录删除),那么提供者将把警告返回给 Errors 集合,并发生运行时错误。使用 Filter 属性 (adFilterAffectedRecords) 和 Status 属性可以找到发生冲突的记录。
要取消所有挂起的批更新,请使用 CancelBatch 方法。
如果设置了 Unique Table 和 Update Resync 动态属性,并且 Recordset 是对多个表执行 JOIN 操作的结果,那么,取决于 Update Resync 属性,执行 UpdateBatch 方法会隐性导致 Resync 方法。