update 和 updateBactch 有什么不同,各用于什么情况?

解决方案 »

  1.   

    UPDATE 是更新
    UPDATEBAcTCH是批更新
      

  2.   

    UpdateBatch 方法 (ADO)         
    将所有挂起的批更新写入磁盘。
    语法
    recordset.UpdateBatch AffectRecords
    参数
    AffectRecords   可选,AffectEnum 值。决定 UpdateBatch 方法所影响的记录数目,可以为如下常量之一。
    常量 说明 
    adAffectCurrent 只写入当前记录的挂起更改。 
    adAffectGroup 对满足当前 Filter 属性设置的记录写入其挂起更改。必须将 Filter 属性设置为某个有效的预定义常量以便使用该选项。 
    adAffectAll 默认值。对 Recordset 对象的所有记录写入挂起更改,包括所有由于当前 Filter 属性设置而隐藏的记录。 
    说明
    在批更新模式中修改 Recordset 对象时,使用 UpdateBatch 方法可将 Recordset 对象中的所有更改传递到现行数据库。
    如果 Recordset 对象支持批更新,那么在调用 UpdateBatch 方法之前可以将一个或多个记录的多重更改缓存在本地。如果在调用 UpdateBatch 方法时正在编辑当前记录或者添加新的记录,那么在将批更新传送到提供者之前,ADO 将自动调用 Update 方法保存当前记录的所有挂起更改。
    注意   只能对键集或静态游标使用批更新。如果由于与现行数据冲突而导致传送更改的尝试失败(如其他用户已将记录删除),那么提供者将把警告返回给 Errors 集合但并不终止执行程序。只有在所有请求的记录都出现冲突时才发生运行时错误。使用 Filter 属性 (adFilterAffectedRecords) 和 Status 属性可以找到发生冲突的记录。
    要取消所有挂起的批更新,请使用 CancelBatch 方法。
    Update 方法 (ADO)         
    保存对 Recordset 对象的当前记录所做的所有更改。语法recordset.Update Fields, Values参数Fields   可选。变体型,代表单个名称;或变体型数组,代表需要修改的字段(单个或多个)名称或序号位置。Values   可选。变体型,代表单个值;或变体型数组,代表新记录中字段(单个或多个)值。说明使用 Update 方法保存自从调用 AddNew 方法,或自从现有记录的任何字段值发生更改之后,对 Recordset 对象的当前记录所作的所有更改。Recordset 对象必须支持更新。要设置字段值,请进行下列某项操作: 给 Field 对象的 Value 属性赋值并调用 Update 方法。
    传送字段名和值作为 Update 调用的参数。
    将字段名数组和值数组传送给 Update 调用。 
    在使用字段和值数组时,两个数组中必须有相等数量的元素,同时字段名的次序必须与字段值的次序相匹配。字段和值的数量及次序不匹配将产生错误。如果 Recordset 对象支持批更新,那么可以在调用 UpdateBatch 方法之前将一个或多个记录的多个更改缓存在本地。如果在调用 UpdateBatch 方法时正在编辑当前记录或者添加新记录,那么 ADO 将自动调用 Update 方法,以便在批更改传送到提供者之前将所有挂起的更改保存到当前记录。如果在调用 Update 方法之前移动出正在添加或编辑的记录,那么 ADO 将自动调用 Update 以便保存更改。如果希望取消对当前记录所做的所有更改或者放弃新添加的记录,则必须调用 CancelUpdate 方法。调用 Update 方法后当前记录仍为当前状态。
      

  3.   

    UpdateBatch 方法 (ADO)         
    将所有挂起的批更新写入磁盘。
    语法
    recordset.UpdateBatch AffectRecords
    参数
    AffectRecords   可选,AffectEnum 值。决定 UpdateBatch 方法所影响的记录数目,可以为如下常量之一。
    常量 说明 
    adAffectCurrent 只写入当前记录的挂起更改。 
    adAffectGroup 对满足当前 Filter 属性设置的记录写入其挂起更改。必须将 Filter 属性设置为某个有效的预定义常量以便使用该选项。 
    adAffectAll 默认值。对 Recordset 对象的所有记录写入挂起更改,包括所有由于当前 Filter 属性设置而隐藏的记录。 
    说明
    在批更新模式中修改 Recordset 对象时,使用 UpdateBatch 方法可将 Recordset 对象中的所有更改传递到现行数据库。
    如果 Recordset 对象支持批更新,那么在调用 UpdateBatch 方法之前可以将一个或多个记录的多重更改缓存在本地。如果在调用 UpdateBatch 方法时正在编辑当前记录或者添加新的记录,那么在将批更新传送到提供者之前,ADO 将自动调用 Update 方法保存当前记录的所有挂起更改。
    注意   只能对键集或静态游标使用批更新。如果由于与现行数据冲突而导致传送更改的尝试失败(如其他用户已将记录删除),那么提供者将把警告返回给 Errors 集合但并不终止执行程序。只有在所有请求的记录都出现冲突时才发生运行时错误。使用 Filter 属性 (adFilterAffectedRecords) 和 Status 属性可以找到发生冲突的记录。
    要取消所有挂起的批更新,请使用 CancelBatch 方法。
    Update 方法 (ADO)         
    保存对 Recordset 对象的当前记录所做的所有更改。语法recordset.Update Fields, Values参数Fields   可选。变体型,代表单个名称;或变体型数组,代表需要修改的字段(单个或多个)名称或序号位置。Values   可选。变体型,代表单个值;或变体型数组,代表新记录中字段(单个或多个)值。说明使用 Update 方法保存自从调用 AddNew 方法,或自从现有记录的任何字段值发生更改之后,对 Recordset 对象的当前记录所作的所有更改。Recordset 对象必须支持更新。要设置字段值,请进行下列某项操作: 给 Field 对象的 Value 属性赋值并调用 Update 方法。
    传送字段名和值作为 Update 调用的参数。
    将字段名数组和值数组传送给 Update 调用。 
    在使用字段和值数组时,两个数组中必须有相等数量的元素,同时字段名的次序必须与字段值的次序相匹配。字段和值的数量及次序不匹配将产生错误。如果 Recordset 对象支持批更新,那么可以在调用 UpdateBatch 方法之前将一个或多个记录的多个更改缓存在本地。如果在调用 UpdateBatch 方法时正在编辑当前记录或者添加新记录,那么 ADO 将自动调用 Update 方法,以便在批更改传送到提供者之前将所有挂起的更改保存到当前记录。如果在调用 Update 方法之前移动出正在添加或编辑的记录,那么 ADO 将自动调用 Update 以便保存更改。如果希望取消对当前记录所做的所有更改或者放弃新添加的记录,则必须调用 CancelUpdate 方法。调用 Update 方法后当前记录仍为当前状态。
      

  4.   

    ADO的Recordset可以选择"立即"更新模式,每次调用Update方法都会将更改提交到
    数据库中,也可以选择"批更新"模式,在批更新模式中,每次调用Update都是将更改
    保存到Recordset中,直到调用UpdateBatch才将更改传送到数据库中.Cursorlocation 和LockType属性控制是用哪种模式.
      

  5.   

    UPDATE 是单记录更新
    UPDATEBAcTCH是批更新用的情况很明显了
      

  6.   

    使用批量更新模式Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic
       
    保存:Rs.Update
    Rs.UpdateBatch  写入磁盘数据库
    ---------------------------------
    默认的立即更新模式 
    Rs.Open "select * from employees", CN, adOpenDynamic, adLockOptimistic保存的时候
    Rs.Update  就可以更新数据库
      

  7.   

    UPDATE 是单记录更新
    UPDATEBAcTCH是批更新用的情况很明显了