RDO 2.0 提供了很多事件,利用这些事件可以使异步操作处理、集中式错误处理和公共例程的实现更加简单。这些事件过程都在初始的 RDO 对象创建之后即成为有效的。在 Dim 语句中使用 WithEvents 时,代码中会自动显露对象的事件处理程序。例如,为了在 rdoConnection 对象中显露这些事件,可以用下面的编码:
Private WithEvents MyCn As rdoConnection
在设计模式中,代码窗口中的 Object 下拉列表中会包含 MyCn
一项。一旦选择了它,每个 rdoConnection 事件都会被显露。
尽管不能使用 Dim x As New 语法使用 WithEvents 运算符,可以使用以下语法来实例化一个独立的 RDO 对象。
Private WithEvents MyCn As rdoConnection
...
Set MyCn As New rdoConnection
请注意,rdoQuery 对象没有显露任何的事件,它们都显露在父对象 rdoConnection 中。rdoQuery 对象被捕获的每一个事件的rdoConnection 处理程序都传递了一个指针,指向触发该事件的查询。例如,rdoConnection 对象的 WillExecute 事件可能写成下面的样子,表明将作为查询提交的 SQL 语句。
Private Sub MyCn_WillExecute( _
ByVal Query As RDO.rdoQuery, Cancel As Boolean)
Msgbox "About to exectue:" & Query.SQL
End Sub
详细信息 关于使用 WithEvents 关键字的详细信息,请参阅《程序员指南》中“用对象编程”的“添加事件到类”一节,以及《语言参考》中的有关内容。