【发布时间】:2021-02-09 14:41:31
【问题描述】:
德尔福新手。我正在开发一个需要访问 MSSQL 数据库的应用程序,为此我使用了 FDConnection、FDQuery 和连接到网格的 DataSource 组件。有了这些,我就可以访问/修改/删除数据了。现在,如果我想过滤网格,我可以通过在运行时更改 FDQuery 组件来做到这一点,但我不确定这是否是正确的方法。
我曾考虑使用诸如 ClientDatasets 之类的将表存储在内存中的东西,因为我不确定 FDQuery 是否这样做,这样我就可以管理已经检索到的数据,而无需访问超出需要的数据库。我的问题是我对这些组件中的任何一个都没有基本的了解,所以我的问题是:
除了 FDQuery 之外,我还需要使用其他任何东西吗?
关于我正在构建的内容的更多背景信息:UniGUI Web 应用程序,MSSQL 服务器与 Web 服务器在同一个 LAN 中,并且多用户访问 DB。
【问题讨论】:
-
内存表未连接到服务器。您手动填充它。
-
我已经投票决定关闭这个 q,因为它是关于 SO 的题外话,因为它确实要求提供有关使用 FIreDAC 和不相关的 TClientDataSet 进行数据库访问的教程。 TFDQuery 和 TFDTable 在 Delphi 的原始版本中基本上是并行的 TQuery 和 TTable - 那里有很多论文和教程解释了它们之间的差异,请尝试谷歌搜索。 TFDMemTable 和 TClientDataSets 基本上是内存中的数据集,再次谷歌解释它们的用途。 TClientDataset 最初设计为与 TDatasetProvider 一起使用 [cont]
-
... 实现一种使用 SQL 数据库的方法(早于 FireDAC),该方法不需要服务器提供实时、可更新的结果集,并且可以与“firehose”一起使用光标。这些主题过于广泛,无法在一次问答中解决,这就是为什么你的 q 应该被关闭的原因。
-
我推荐这本书:Delphi/Kylix Dtabase Development (Eric Harmon)。这样您将更好地了解如何使用 ClientDataSet。您的问题有点离题,您需要教程。