DELPHI 数据控件TclientDataSet的详细说明 与TTable、TQuery一样,TClientDataSet也是从 TDataSet继承下来的,它通常用于多层体系结构的客户端。 TClientDataSet最大的特点是它不依赖于 BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫 DBCLIENT.DLL。在客户端,也不需要用 TDatabase构件,因为客户端并不直接连接数据库。 由于 TClientDataSet是从 TDataSet继承下来的,所以,它支持诸如编辑、搜索、浏览、纠错、过滤等功能。由于 TClientDataSet在内存中建立了数据的本地副本,上述操作的执行速度很快。也正是由于 TClientDataSet并不直接连接数据库,因此,客户程序必须提供获取数据的机制。 在 Delphi 4中,TClientDataSet有三种途径获取数据: .从文件中存取数据。 .从本地的另一个数据集中获取数据。 .通过 IProvider接口从远程数据库服务器获取数据。 在一个客户程序中,可以同时运用上述三种机制获取数据。 1、浏览和编辑数据 和其他数据集构件一样,可以用标准的数据控件显示由TClientDataSet引入的数据集,当然,这需要借助于 TDataSource构件。 由于TClientDataSet是从TDataSet继承下来的,所以,凡是其他数据集构件支持的功能,TClientDataSet构件也大致具备。不同的是,TClientDataSet能够在内存中建立数据的副本,因此,TClientDataSet比其他数据集构件增加了一些特殊的功能。 1.1、浏览数据 可以用标准的数据控件显示由TClientDataSet引入的数据集。在运行期,可以调用诸如 First、GotoKey、Last、Next和 Prior等函数来浏览数据。 TClientDataSet也支持书签功能,可以用书签来标记某条记录,以后就可以方便地找到这条记录。 对于TTable、TQuery等数据集构件来说,只能读 RecNo属性来判断当前记录的序号。对于TClientDataSet构件来说,还可以写RecNo属性,使某一序号的记录成为当前记录。 1.2、CanModify属性 TDataSet的CanModify属性用于判断数据集中的数据是否可以修改。CanModify属性本身是只读的,也就是说,数据是否能够修改不取决于应用程序。 与 TDataSet不同的是,TClientDataSet构件有其特殊性,因为TClientDataSet已经把数据在内存中建立了副本,因此,应用程序可以决定是否允许修改数据。如果不允许用户修改数据,只要把ReadOnly属性设为 True,此时,CanModify属性肯定返回 False。 与其他数据集构件不同,修改 TClientDataSet构件的ReadOnly...