Delphi Firedac TFDtable 开放问题
Posted
技术标签:
【中文标题】Delphi Firedac TFDtable 开放问题【英文标题】:Delphi Firedac TFDtable open issue 【发布时间】:2016-09-29 05:21:34 【问题描述】:我正在从事 Delphi XE6 项目。 我正在使用 Firedac 进行 PostgreSQL 连接。
本项目中有两个数据模块,这些数据模块上有近20个TFDtables组件。
在创建数据模块事件时,我正在为所有表执行“TFDtable.open”。 这些表包含大量数据,例如 700000 到 800000 个条目。
问题在于加载数据。加载至少需要 20 秒 有没有其他办法让它更快?
【问题讨论】:
您加载这些大量的行只是为了让用户可以在您的 gui 中浏览它们吗?无论如何,我怀疑你会更快地打开这些表。更好的是对您加载的记录更具选择性。这是应用程序和数据库设计的问题。FetchOptions.Mode
是如何在这些 FDTables 中设置的?
尽管 FireDAC 可以在这里为您提供帮助,但我完全同意 @MartynA 关于获取这么多行的看法。获取如此多的数据只是浪费资源。
【参考方案1】:
您似乎正在实现所谓的Live Data Window Mode,并且您正在寻找LiveWindowFastFirst 属性。它被描述为:
LiveWindowFastFirst
如果设置为 True,则 FireDAC 构建一个查询以返回第一个 尽快出结果。如果设置为 False(默认 值),然后 FireDAC 最小化返回所有表行的时间。
所以尝试启用它:
...
FDTable1.FetchOptions.LiveWindowFastFirst := True;
FDTable1.Open;
【讨论】:
以上是关于Delphi Firedac TFDtable 开放问题的主要内容,如果未能解决你的问题,请参考以下文章
Delphi东京版FireDAC连接MSSQL2000提示对象名 'SYS.DATABASES' 无效