【问题标题】:Delphi - TClientDataSet - storing filter and indexes definitionsDelphi - TClientDataSet - 存储过滤器和索引定义
【发布时间】:2014-02-03 15:18:32
【问题描述】:

我需要一些关于TClientDataSet 的帮助,因为在进行了广泛的研究之后,我仍然对某些功能感到困惑。

据我所知,将TClientDataSet 结构保存到文件中,仅保留FieldDefs。所有其他定义(例如 filtersindexes)都将丢失。因此,我必须在打开 DataSet 后重新创建它们,以便进行定义。

我由此推断,如果我想将这些定义存储在磁盘中(这样它们将可用于整个应用程序,而不仅仅是特定形式),我必须维护一个单独的DataSet。然后,在运行时,我可以从 DataSet 重新创建所有定义。

我的问题是:除了上面提到的之外,还有其他机制来存储这些定义吗? TDataSetProvider 可以解决问题吗?

我为我的无知道歉,并感谢对这个主题的任何启发。

提前致谢。

【问题讨论】:

  • 就是这样!我想避免使用数据库。听起来可能有点奇怪,但出于我自己的原因,我希望应用程序仅使用 TClientDataSet。我认为DataSet 拥有我的应用程序可能需要的所有功能。
  • 有很多可能性:1-Regedit,2-IniFiles,3-数据库,4-其他数据集。在这种特定情况下,我相信 IniFiles 更好
  • @matheus。所以TDataSetProvider 不应该解决,对吧?
  • DataSetProvider 常用于从 TQuery 中检索数据。
  • @matheus。但它有能力存储DataSet 定义?

标签: delphi delphi-xe


【解决方案1】:

是的,有很多可能性可以做你想做的事。

但是,TDataSetProvider 不是其中之一。

可以使用:

  • 1 TRegistry
  • 2TIniFiles
  • 3 将其保存在数据库中(不是一个好方法)
  • 4 另一个 DataSet,正如您所提到的。

为您选择更容易和最可靠的。
TIniFile 在许多情况下经常用于保存定义。

【讨论】:

    【解决方案2】:

    当您保存 ClientDataSet 时,它会保存数据结构、数据、索引定义、参数、增量数据等。但它只保存一个过滤器定义。

    您还可以在 Delphi 代码中保存独立和过滤器。

    如前所述,Registry 和 IniFiles 也是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多