有一阵子觉得DELPHI的TDataSource数据控件没啥用处,
后来在论坛搜了一下,总结如下.
DataSource 是数据源控件
用于数据集控件和数据显示控件的链接作用
比如datagrid 等一些数据显示控件都有 datasource 属性。 他们的关系是:
数据显示控件 -----  DataSource ----- DataSetDataSource的桥梁作用是如何工作的:
1.在TDataSource中提供了DataEvent方法,这个方法的作用是当TDataSource所对应的数据集中的数据发生变化时,它会根据FDataLinks列表通知所有用到该数据集的数据敏感控件。而维护FDataLinks数据列表的方法是
AddDataLink。
2.每当改变一个数据敏感控件的DataSource属性时,就会触发相应DataSource中的方法AddDataLink,往DataSource.FDataLinks中加上这个数据敏感控件,这样当数据集的数据发生变化时就会通知它。这里,TdataSource和数据敏感控件的关系是一对多的关系,在这里TdataSource起个路由的作用,这样可以只改变DataSource和DataSet之间的关系,就可以让数据敏感控件显示不同数据集的数据.从面向对象的角度来看,他隔离了数据源,使得显示成为了一个可独立的模块,使得代码的复用性增大.DataSource与DataSet的有一一对应关系。但DataSet分成多种形式存在,如Table, Query, AdoQuery
DataSource中有它们之间的共同特性,从这点角度看,它还是有存在的必要。