AddNew 方法的行为取决于 Recordset 对象的更新模式,以及是否传递 FieldList 和 Values 参数。
在即时更新模式下(提供程序在调用 Update 方法后将更改写入基础数据源),在不参数的情况下调用 AddNew 方法,将 EditMode 属性设置为 adEditAdd。 提供程序在本地缓存任何字段值更改。 调用 Update 方法会将新记录发布到数据库,并将 EditMode 属性重置为 adEditNone。 如果传递 FieldList 和 Values 参数,则 ADO 会立即将新记录发布到数据库(无需 更新 调用):EditMode 属性值不会更改(adEditNone)。
在批处理更新模式下,在没有参数的情况下调用 AddNew 方法会将 EditMode 属性设置为 adEditAdd。 提供程序在本地缓存任何字段值更改。 调用 Update 方法会将新记录添加到当前 Recordset,并将 EditMode 属性重置为 adEditNone,但在调用 UpdateBatch 方法之前,提供程序不会将更改发布到基础数据库。 如果传递 FieldList 和 值 参数,ADO 会将新记录发送到提供程序,以便在缓存中存储;需要调用 UpdateBatch 方法,将新记录发布到基础数据库。 有关 Update 和 UpdateBatch的详细信息,请参阅 更新和持久化数据。