也可以采用循环轮询以外的方式测试异步操作是否完成,即编写自己的事件处理程序,在查询、连接或其它异步操作的事件发生时将其捕获。
下表对每一种 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 | 在数据行的值改变之前,允许开发人员取消它。 |