[QDB] 从数据库中一次获取多个数据集

QDB 支持一个脚本同时返回多个结果,操作过程也很简单,下面是一段从 PostgreSQL 数据库取出两个不同结果集的示例代码:

FProv.OpenDataSet(FDataSet,
  'select id,char_d from dbtypes order by id;'+
  'select id,abstime_d from dbtypes order by id;'
);

这样就同时打开了两个结果集,但是,我们只传递了一个数据集对象呀?QDB 如何存的呢?实际上,每一个 TQDataSet 实例都有一个内部的 FRecordsets 数组来内部存贮多个子结果集,当只有一个结果集时,它的长度为0。当有多个结果集时,QDB 会将每个数据集存贮到其中,而当前的数据集就成为一个容器,初始克隆自第一个子结果集。当我们需要访问时,只需要设置 ActiveRecordset 属性告诉系统你要使用那个结果集呈现给用户就可以了。如果咱们只是内部访问,可以直接访问 Recordsets 属性存取数据(注意安全哟)。

好了,现在我们看一下上面的语句的结果吧:

multids

分享到: