FIREDAC返回多结果集

以前使用ADO, 如果SQL返回的结果集有多个 可以通过NextRecordset来依次获取

代码移植到FireDAC, 对于多结果集处理差不多, 但是还是有一些不一样的地方:

1.TDataSet本身是不支持多结果集的, 所以不要再这个上面浪费精力

2.切换到下一个结果集, ADO.NextRecordset 对应 FD.NextRecordSet

3.判断是否有下一个结果集, ADO的方法是NextRecordset <> nil, 而FireDAC的NextRecordSet没有返回值, 需要NextRecordSet以后判断FD.Active

4.ADO.Recordset对应的是FD.Data, 但是, Recordset是一个接口, 手动增加引用计数以后释放ADO对象仍然可以访问, 但是Data不行, FD对象释放以后Data内容也就没了, 虽然他也是一个接口, 但是实际数据还是存放到FD对象里的

5.FireDAC默认是不支持多结果集返回的, 需要手动设置 FetchOptions.AutoClose := False; 以后才可以

6.FireDAC如果你想吧得到的多结果集挨个取出来, 那么不能直接用临时变量保存Data(Data是个接口), 需要用一个内存表去保存:

FDQuery1.Open;
FDQuery1.FetchAll;
FDMemTable1.Close; {一定要先close, 否则第二次设置其Data会报错}
FDMemTable1.Data := FDQuery1.Data;
FDQuery1.NextRecordSet;
if FDQuery1.Active then
begin
FDQuery1.FetchAll;
FDMemTable2.Close;
FDMemTable2.Data := FDQuery1.Data;
end;

  

最新文章

  1. .NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
  2. rails程序文件名命名规范
  3. Andrew N.G的机器学习公开课学习笔记(一):机器学习的动机与应用
  4. Update UI from an asynchronous thread
  5. 【转】APNs消息推送完整讲解
  6. How to get blob data using javascript XmlHttpRequest by sync
  7. 配置NAT回流导致外网解析到了内网IP
  8. 【学习总结】【多线程】 线程 &amp; 进程 &amp; NSThread(多线程的一套API)
  9. 作为 .Net 攻城师,所必需掌握的 .Net Profiling 技术
  10. 【Linux】鸟哥的Linux私房菜基础学习篇整理(八)
  11. javascript 获取用户光标,插入文本
  12. Ajax请求用户控件(.ascx)404错误
  13. IOS 类似网易新闻客户端内容滚动菜单跟随居中组件
  14. 让gdb能打印C++中的容器类型
  15. Codeforces Round #408 (Div. 2)
  16. 生鲜配送管理系统_升鲜宝V2.0 小标签打印功能【代配送商品打印小标签功能】说明_15382353715
  17. Firefox 调试 JavaScript 代码
  18. Centos7离线安装redis
  19. z-tree学习笔记
  20. Informatica_(6)性能调优

热门文章

  1. 对SPI进行参数化结构设计
  2. stm32 PWM
  3. leetcode-64. 最小路径和 &#183; vector + DP
  4. SAP UI5应用入口App.controller.js是如何被UI5框架加载的?
  5. KVM之配置桥接网卡
  6. 阿里Java架构师打包 FatJar 方法小结
  7. Dubbo:1
  8. C#的预处理指令
  9. RT-Thread--时间管理
  10. SQL SERVER 2008 数据库隔离级别代码演示