VB中“更新”的比较──Update Refresh和Requery的用法
IT商界
在不少数据库程序项目中,都会涉及使用更新语句来更新数据库和程序之间的数据。在VB中有3个常用的更新Update、 Refresh、Requery。笔者刚刚完成几个大型的设计项目,也用到了更新语句,为了让大家理解得更深和明白它们之间的区别,现在从ADO方面来谈谈笔者对这3个更新的理解,希望对大家有所帮助。
Update
解释:保存对 Recordset对象的当前记录所做的所有更改。
语法:Adodc1.Recordset.Update
特点:使用Update方法保存来自Adodc1.Recordset.AddNew方法的结果,或从现有记录的任何字段值发生更改之后,对Recordset对象的当前记录所做的所有更改。Adodc1.Recordset对象必须支持更新。如果在调用Update方法之前移动出正在添加或编辑的记录,那么ADO将自动调用Update以便保存更改。如果Recordset对象支持的是立即更新,那么一旦调用Update方法,对数据的所有更改将被立即写入现行数据源。
Refresh
解释:更新集合中的对象,以便反映来自并特定于提供者的对象。
语法:Adodc1.Refresh,Refresh
特点:是更新Adodc1这个连接,在Fields集合上使用Refresh方法没有可见的效果,在打开Recordset前通过调用集合上的Refresh方法可以充填Fields集合。
Requery
解释:通过重新执行对象所基于的查询,来更新Recordset对象中的数据。
语法:Adodc1.Recordset.Requery
特点:通过重新发出原始命令并再次检索数据可使用Requery方法刷新数据源的Recordset对象的全部内容,调用该方法等于相继调用Close和Open方法。如果正在编辑当前记录或者添加新记录将产生错误,Requery只能刷新当前游标 ,要从现行数据录或者添加新记录将产生错误,Requery只能刷新当前游标 ,要从现行数据库结构中检索当前数据,必须使用Requery方法。