|
用ADO进行数据库编程(4) 6.38 事件 ADO 2.0 支持事件,事件是对某些操作将要或已经发生的通知。 有两类事件:ConnectionEvent 和 RecordsetEvent。Connection 对象产生 ConnectionEvent 事件,而 Recordset 对象则产生 RecordsetEvent 事件。 事件由事件处理程序例程处理,该例程在某个操作开始之前或结束之后被调用。 某些事件是成对出现的。开始操作前调用的事件名格式为 WillEvent(Will 事件),而操作结束后调用的事件名格式为 EventComplete(Complete 事件)。其余的不成对事件只在操作结束后发生。(其名称没有任何固定模式。)事件处理程序由状态参数控制。附加信息由错误和对象参数提供。 可以请求事件处理程序不接受第一次通知以后的任何通知。例如,可以选择只接收 Will 事件或 Complete 事件。 下面的代码显示了一个使用ADO的例子。 首先加入Microsoft ActiveX Data Object 2.0 Library引用。 Dim db As Connection Set db = New Connection db.CursorLocation = adUseClient db.Open "PROVIDER=MSDASQL;DSN=TestDatabase", "sa", "", -1 Dim i As Long Dim id As Long Dim value As Single Dim rst As New Recordset Set rst = New Recordset rst.Open "select * from 模拟量变化历史表", db, adOpenDynamic, adLockOptimistic rst.MoveFirst For i = 0 To rst.RecordCount - 1 id = rst.Fields("ID") value=rst.Fields(“VALUE”) rst.MoveNext Next i rst.Close Set rst = Nothing db.Close 6.4总结 ADO技术是访问数据库的新技术,具有易于使用、访问灵活、应用广泛的特点。用ADO访问数据源的特点可总结如下: 1、 易于使用 这是ADO技术的最重要的一个特征。由于ADO是高层应用,所以相对于OLE DB或者ODBC来说,它具有面向对象的特性。同时,在ADO的对象结构中,其对象之间的层次关系并不明显。相对于DAO等访问技术来讲,又不必关心对象的构造顺序和构造层次。对于要用的对象,不必选建立连接、会话等对象,只需直接构造即可,方便了应用程序的编制。 2、 高速访问数据源 由于ADO技术基于OLE DB,所以,它也继承了OLE DB访问数据库的高速性。 3、 可以访问不同数据源 ADO技术可以访问包括关系数据库和非关系数据库的所有文件系统。此特点使应用程序有很多的灵活性和通用性。 4、 可以用于Microsoft ActiveX页 ADO技术可以以ActiveX控件的形式出现,所以,可以被用于Microsoft ActiveX页,此特征可简化WEB页的编程。 5、 程序占用内存少 由于ADO是基于组件对象模型(COM)的访问技术,所以,用ADO产生的应用程序占用内存少。 7、 总结 要在访问数据时判断出应该使用哪一种技术,这并不容易。可能需要公用实用程序来处理多个数据库类型;部分数据可能出现在本地硬盘驱动器上,部分在网络上,还有一部分在主机上。甚至客户安装在设备上的产品也会使这种选择更加困难。例如,你所期待的ODBC支持级别也许依赖于所安装的Microsoft Office的版本,因为这个产品不提供ODBC支持。你还会发现,ADO类提供的对象和方法要比ODBC类多。ADO可以提供程序中绝对必须具有的一些特性棗例如,你会发现OLE-DB和ADO两者都支持DFX_Currency,但在ODBC中没有对应的功能,但你要想掌握它们也必须付出一定的努力。
|