Delphi - TClientDataSet - 存储过滤器和索引定义

时间:2014-02-03 15:18:32

标签: delphi delphi-xe

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

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

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

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

我为自己的无知而道歉,并感谢任何关于这个主题的启发。

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

但是,TDataSetProvider不是其中之一。

可以使用:

  • 1 TRegistry
  • 2 TIniFiles
  • 3在数据库中保留它(不是一个好的方法)
  • 4另一个DataSet,如你所说。

为您选择更容易,最实用的方法 TIniFile经常用于在许多情况下保存定义。

答案 1 :(得分:0)

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

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

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