https://blog.csdn.net/onebigday/article/details/5602619
ClientDataSet初步使用

用Delphi以来,一直在用TSimpleDataset控件,因为它方便,但有人对我说,TSimpleDataSet不好,最好还是用TClientDataSet。一开始还不以然认为很方便,还没发现什么不好。后来有一次想把TSimpleDataSet的SaveToFile把它保存为二进制形式文件后,竟然无法用LoadFromFile再导到TsimpleDataSet中了,查了好久才知道用TClientDataSet的LoadFromFile才可以。过一段时间,又发现TSimpleDataSet没有Aggregates属性,想想,还是用多用用TClientDataSet才行。不能只会用TSimpleDataSet。

要用TClientDataSet,就要多比TSimpleDataSet用两个控件,一个是TdataSetProvider,另一个是TSQLQuery。下面说说我是怎么用的:

1。添加TSQLConnection控件,在DBExpress控件组中

2。添加TSQLQuery,在DBExpress控件组中

3。添加TDataSetProvider,在DataAccess控件组中

4。添加TClientDataSet,在DataAccess控件组中

5。添加TDataSource,在DataAccess控件组中

6。添加TDBGrid,在DataControls控件组中

 

然后设置TSQLQuery的SQLConnection属性,指向TSQLConncetion

TDataSetProvider的DataSet属性指向TSQLQuery

TClientDataSet的ProviderName属性指向 TDataSetProvider

TDataSource的DataSet属性指向TClientDataSet

TDBGrid的DataSource属性指向TDataSource

它们的依靠关系也就是:

TDBGrid->TDataSource->TClientDataSet->TDataSetProvider->TSQLQuery->TSQLConncetion

 

然后要知道,TClientDataSet的CommandText属性是不可写的,要变换不同的SQL语句进行查询,就修改TSQLQuery的SQL.Text属性,然后用TClientDataSet的Open方法执行SQL语句。