delphi - Delphi FireDac 中的 FDQuery、FDMemtable 和 ClientDataset 之间应该使用什么?

标签 delphi firedac

德尔福新手。我正在开发一个需要访问 MSSQL 数据库的应用程序,为此我使用了 FDConnection、FDQuery 和连接到网格的 DataSource 组件。有了这些,我就可以很好地访问/修改/删除数据。现在,如果我想过滤网格,我可以通过在运行时更改 FDQuery 组件来完成此操作,但我不确定这是否是正确的方法。

我考虑过使用像 ClientDatasets 这样在内存中存储表的东西,因为我不确定 FDQuery 是否这样做,这样我就可以管理已经检索到的数据,而无需访问超出需要的数据库。我的问题是我对这些组件都没有基本的了解,所以我的问题是:

除了 FDQuery 之外,我还需要使用其他东西吗?

关于我正在构建的内容的更多背景信息:UniGUI Web 应用程序,MSSQL 服务器与 Web 服务器位于同一 LAN 中,以及对数据库的多个用户访问。

最佳答案

现在我更好地了解了这些组件,我发现了这个 FAQ from Embarcadero's doc这解释了我想知道的事情。

Q1: Can I use TFDQuery and connect it to a dataset provider and retrieve the data in an Embarcadero client dataset?

A: TFDQuery is a mix of TFDMemTable, TFDTableAdapter and several TFDCommand's. So, TFDQuery has everything inside to execute SQL commands, send parameter data, receive and store result sets, browse result sets and post changes back to a database. There is no reason to use TFDQuery + DSP + CDS.

You can use TFDMemTable, TFDTableAdapter and TFDCommand directly, instead of TFDQuery. They give more flexibility, but also require more coding. Take for example synchronized cached updates across datasets.

In other words, TFDQuery is an optimal "shortcut" for every day data application programming.

关于delphi - Delphi FireDac 中的 FDQuery、FDMemtable 和 ClientDataset 之间应该使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66121168/

相关文章:

delphi - 应用程序和 DLL 之间的共享 Firedac 连接中的事务

delphi - 如何存储每个用户的临时文件?

Delphi流面板到文件

delphi - 将记录集从 fdquery 复制到 fdquery 的简单方法

delphi - Firedac ODBC 和 Ingres 数据库 - "API function cannot be called in the current state"

Delphi FireDac - 覆盖更新后获取自动递增值

android - 如何在 android 上安装 Firebird 驱动程序以便我可以连接 FireDac

delphi - 为什么我的程序会泄漏虚拟内存?

delphi - TListBox - 所选项目滚动速度

delphi - TIdTcpServer 和 TIdTCPClient 之间的速度交换数据(就像洪水一样)如何