使用 RDO 事件

也可以采用循环轮询以外的方式测试异步操作是否完成,即编写自己的事件处理程序,在查询、连接或其它异步操作的事件发生时将其捕获。

下表对每一种 RDO 异步查询事件进行了简单的描述。

rdoEngine 对象的异步事件

事件 触发于...
InfoMessage ODBC API 函数返回 SQL_SUCCESS_WITH_INFO 时。

rdoEnvironment 对象的异步事件

事件 触发于...
BeginTrans BeginTrans 方法完成之后。
CommitTrans CommitTrans 方法完成之后。
RollbackTrans RollbackTrans 方法完成之后。

rdoConnection 对象的异步事件

事件 触发于...
BeforeConnect 在调用 SQLDriverConnect 之前,从而允许开发人员进行提示。
Connect 连接操作完成之后,无论是否成功。
Disconnect 连接关闭之后。
QueryComplete 查询完成之后,无论是否成功。
QueryTimeout QueryTimeout 所设置的时间已用完,而查询仍未完成。
WillExecute 在查询执行之前,从而允许开发人员阻止查询的执行,或在最后时刻对 SQL 作些调整。

rdoResultset 对象的异步事件

事件 触发于...
Associate 在一个新的连接被关联到该对象之后。
Dissociate 与连接分离之后。
ResultsChange 当前的行集合被修改之后(多结果集)。
RowCurrencyChange 当前行的状态改变(由于编辑、删除或插入等操作)之后,或当前行指针改变时。
RowStatusChange 当前行的状态改变(由于编辑、删除或插入等操作)之后。
WillAssociate 一个新的连接被关联到一个对象之前,开发人员可以影响或取消该操作。
WillDissociate 在与连接分离之前,开发人员可以影响或取消该操作。
WillUpdateRows 在对服务器的更新发生之前,开发人员可以影响或取消该操作。

rdoColumn 对象的异步事件

事件 触发于...
DataChange 当数据行的值发生改变时。
WillChangeData 在数据行的值改变之前,允许开发人员取消它。