当前位置:编程学习 > VB >>

100分:关于ADODC的几个问题

问题一:
 Adodc1.RecordSource = sql
 Adodc1.Recordset.Requery  此处出错 错误提示是:对象变量或WITH块变量未设置   换成 Adodc1.Refresh 可正常运行为什么?

问题二:

adodc和recordset的区别是什么?   问题一:
Adodc1.Recordset 还没有打开(建立),后面的操作当然出错。
问题二:
adodc管数据库连接,recordset管数据库中的表、查询。
1)Refresh 是根据 sql 新做查询,这时会创建 RecordSet 对象。
而你没经过 Refresh,RecordSet 属性还是 Nothing,当然不能调用 Requery 了。

2)RecordSet 好比麦当劳,ADODC 好比麦乐送。
后者做前者的代理,提供一定的方便的同时,也会有些限制。 纯mark

If 这楼给分 Then
    楼主木有小JJ
End If
Adodc1.Refresh用于打开数据库
Adodc1.Recordset.Requery原数据源重新查询,也就只有用Refresh打开的,才可以用这个方法。
--------------------------------------

Requery 方法
      

通过重新执行对象所基于的查询,更新 Recordset 对象中的数据。

语法

recordset.Requery Options

参数

Options   可选。指示影响该操作选项的位屏蔽。如果该参数设置为 adAsyncExecute,则该操作将异步执行并在它结束时产生 RecordsetChangeComplete 事件。

说明

通过重新发出原始命令并再次检索数据,可使用 Requery 方法刷新来自数据源的 Recordset 对象的全部内容。调用该方法等于相继调用 Close 和 Open 方法。如果正在编辑当前记录或者添加新记录将产生错误。

在 Recordset 对象打开期间,定义游标性质(CursorType、LockType、MaxRecords 等)的属性为只读,因此 Requery 方法只能刷新当前游标。要更改某个游标属性并查看结果,必须使用 Close 方法使属性再次成为读/写。然后可以更改属性设置并且调用 Open 方法重新打开游标。
ADO Data 控件
Microsoft ActiveX 数据对象(ADO) 来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合 OLEDB 规范的数据源。使用 Visual Basic 的类模块也可以很方便地创建子集的数据提供者。

Recordset 属性(ADO Data 控件)
返回或设置对下一级 ADO Recordset 对象的引用。
adodc1的refresh  和 recordset的requery有什么区别

引用 6 楼 caotamagcd 的回复:
adodc1的refresh  和 recordset的requery有什么区别

Adodc1.Refresh用于打开数据库并对数据源里的SQL语句进行查询。
Adodc1.Recordset.Requery原数据源SQL语句重新查询,也就只有用Refresh打开的,才可以用这个方法。
引用 7 楼 chinaboyzyq 的回复:
引用 6 楼 caotamagcd 的回复:

adodc1的refresh 和 recordset的requery有什么区别

Adodc1.Refresh用于打开数据库并对数据源里的SQL语句进行查询。
Adodc1.Recordset.Requery原数据源SQL语句重新查询,也就只有用Refresh打开的,才可以用这个方法。


请问这个Refresh和Recordset.Requery中用到的SQL语句是相同的吗?还是有区别。
引用 8 楼 caotamagcd 的回复:
请问这个Refresh和Recordset.Requery中用到的SQL语句是相同的吗?还是有区别。


相同
应该说Recordset.Requery中用到的SQL语句是用Refresh打开数据源时用到的sql语句,即用原SQL语句重新查询。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,