在创建了 rdoResultset 之后,就可以访问其中的数据了。在处理结果集时,需要注意以下几点:
创建一个 rdoQuery,并设置其 MaxRows 属性,即可限制查询返回的数据行数。一旦查询处理程序返回了 MaxRows 行数据之后,便不再执行查询了。这是控制从查询返回的行数的最简便的方法。
注意 MaxRows 属性也会影响到数据修改查询。例如,如果 MaxRows 设为 100,然后执行一个动作查询,例如 UPDATE 语句,那么只有开始的 100 个数据行会被更新。
通常,可以通过 RowCount 属性来确定结果集成员的数目。在访问该属性时,RDO 基本上是在返回到应用程序之前执行 MoveLast 方法,从而完全置入到结果集。这种操作不是异步执行的,所以即使查询完成了,应用程序还是可能被阻塞。有的 ODBC 不支持 RowCount,那么该属性将返回 -1。
如果要限定查询处理程序处理某个查询的总时间,可以设置 rdoConnection 或 rdoQuery 的 QueryTimeout 属性。一旦超过 QueryTimeout 的期限,就会触发 QueryTimeout 事件。只要过了 QueryTimeout 的时间就会被触发该事件,无论是否使用了 rdAsyncEnable 选项。
事件处理程序可以选择继续执行异步查询操作还是取消。如果开发者或用户决定继续执行,再等待一个 QueryTimeout 周期,请传递 False 到 Cancel 参数。对 QueryTimeout 属性所作的修改要等到下一个查询开始时才有效。
如果没有编写 QueryTimeout 事件过程,查询会被取消,StillExecuting 属性将设为 False,并将控制返回应用程序。