Update 方法(远程数据)
将复制缓冲区行的内容保存到一个指定的可更新的 rdoResultset 对象中,并废弃复制缓冲区。
复制缓冲区
rdoResultset 对象为一行的内容创建的位置,这一行打开用于编辑。Edit 方法把当前行复制到复制缓冲区,AddNew 方法为一新的行清除缓冲区,而 Update 方法把复制缓冲区的数据保存到数据源中,替换当前行或插入一新行。任何将当前行指针复位或进行移动的语句或者取消编辑的语句都将放弃复制缓冲区.
Update语法
object.Update
object 所在处代表对象表达式,其值为“应用于”列表中的一个对象。
说明使用 Update 保存当前行以及对于基本数据库表所作的任何修改。在使用 AddNew 或 Edit 方法之后,如果在应用程序结束之前不使用 Update 方法,对 rdoResultset 所作的修改将会丢失。
注意 当使用 ClientBatch 游标库,在未使用 BatchUpdate 方法之前,对基本表的所有修改将被延迟。在这种情况下,Update 方法更新本地的 rdoResultset,但不更新基本表。如果应用程序在完成 BatchUpdate 方法之前就结束,这些修改就会丢失。
如遇下列情况,会丢失对当前行的修改,
使用了 Edit 或 AddNew 方法之后,没有首先使用 Update,就将当前行指针重新定位到另一行。
使用了 Edit 或 AddNew 之后,没有首先使用 Update,又使用 Edit 或 AddNew。
使用 CancelUpdate 方法取消修改。
将 Bookmark 属性设置到另一行上。
没有先使用 Update 就关闭 object 引用的结果集。
应用程序在执行 Update 方法之前就结束了,比如象系统掉电。
为了编辑一行,使用 Edit 方法将当前行的内容复制到复制缓冲区中。如果没有先使用 AddNew 或 Edit,当使用 Update 或添加一个新行时,产生一个错误。
为了添加一个新行,使用 AddNew 方法初始化并激活复制缓冲区。
在下列任一条件下使用 Update 会产生错误,
不是当前行。
连接或 rdoResultset 是只读的。
行中没有可更新的列。
没有挂起 Edit 或 AddNew 操作。
另一个用户已经锁定该行或含有该行的数据页。
不具有执行该操作的权限。
由于依赖所使用的驱动程序和游标类型,所以不能使用游标更新主键。
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 方法后当前记录仍为当前状态。