delphi数据控件tclientdataset的详细说明

delphi数据控件tclientdataset的详细说明

ID:34722634

大小:133.68 KB

页数:40页

时间:2019-03-10

delphi数据控件tclientdataset的详细说明_第1页
delphi数据控件tclientdataset的详细说明_第2页
delphi数据控件tclientdataset的详细说明_第3页
delphi数据控件tclientdataset的详细说明_第4页
delphi数据控件tclientdataset的详细说明_第5页
资源描述:

《delphi数据控件tclientdataset的详细说明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、DELPHI数据控件TclientDataSet的详细说明与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。TClientDataSet最大的特点是它不依赖于BDE(BorlandDatabaseEngine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库。由于TClientDataSet是从TDataSet继承下来的,所以,它支持诸如编辑、搜索、浏览、纠错、过滤等

2、功能。由于TClientDataSet在内存中建立了数据的本地副本,上述操作的执行速度很快。也正是由于TClientDataSet并不直接连接数据库,因此,客户程序必须提供获取数据的机制。在Delphi4中,TClientDataSet有三种途径获取数据:.从文件中存取数据。.从本地的另一个数据集中获取数据。.通过IProvider接口从远程数据库服务器获取数据。在一个客户程序中,可以同时运用上述三种机制获取数据。1、浏览和编辑数据和其他数据集构件一样,可以用标准的数据控件显示由TClientDataSet引入的数据集,当然,这需要借助于T

3、DataSource构件。由于TClientDataSet是从TDataSet继承下来的,所以,凡是其他数据集构件支持的功能,TClientDataSet构件也大致具备。不同的是,TClientDataSet能够在内存中建立数据的副本,因此,TClientDataSet比其他数据集构件增加了一些特殊的功能。1.1、浏览数据可以用标准的数据控件显示由TClientDataSet引入的数据集。在运行期,可以调用诸如First、GotoKey、Last、Next和Prior等函数来浏览数据。TClientDataSet也支持书签功能,可以用书签来

4、标记某条记录,以后就可以方便地找到这条记录。对于TTable、TQuery等数据集构件来说,只能读RecNo属性来判断当前记录的序号。对于TClientDataSet构件来说,还可以写RecNo属性,使某一序号的记录成为当前记录。1.2、CanModify属性TDataSet的CanModify属性用于判断数据集中的数据是否可以修改。CanModify属性本身是只读的,也就是说,数据是否能够修改不取决于应用程序。与TDataSet不同的是,TClientDataSet构件有其特殊性,因为TClientDataSet已经把数据在内存中建立了副

5、本,因此,应用程序可以决定是否允许修改数据。如果不允许用户修改数据,只要把ReadOnly属性设为True,此时,CanModify属性肯定返回False。与其他数据集构件不同,修改TClientDataSet构件的ReadOnly属性时,不需要事先把Active属性设为True。1.3、取消修改TClientDataSet传输数据的基本单位称为数据包,当前的数据包可以由Data属性来访问。不过,用户对数据的修改并不直接反映到Data属性中,而是临时写到一个日志即Delta属性中,这样做的好处是以后随时可以取消修改。不过,这里要说明一点,尽

6、管用户的修改并没有反映到Data,当用户在数据控件中看到的却是最新修改的数据。如果一条记录被反复修改了多次,用户看到的只是最新的数据,但日志中却记载了多次。要取消上一次的修改,调用UndoLastChange函数。UndoLastChange:需要传递一个布尔类型的参数叫FollowChange,如果FollowChange参数设为True,光标就移到被恢复的记录上,如果FollowChange参数设为False,光标仍然在当前记录上。UndoLastChange只能取消上一次的修改,如果想一下子取消所有的修改,首先要选择一个记录,然后调用

7、RevertRecord。RevertRecord:将从日志中取消所有对当前记录的修改。ChangeCount:属性返回日志中记载的修改次数。如果一条记录被反复修改了多次,每调用一次UndoLastChange能够逐级取消上一次的修改。TClientDataSet还有一个SavePoint属性,它能把当前的编辑状态保存起来,以后随时可以返回当时的状态。例如,可以这样保存当前的状态:BeforeChanges:=ClientDataSet1.SavePoint;以后,可以这样来恢复当时的状态:ClientDataSet1.SavePoint:

8、=BeforeChanges;应用程序可以保存多处状态,可以恢复其中一个状态,不过,一旦某个状态被恢复,在其之后的状态就无效。如果要一下子取消日志中记载的所有修改,可以调用Can

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。