- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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属性时,不需要事先把Active属性设为True。
1.3、取消修改
TClientDataSet传输数据的基本单位称为数据包,当前的数据包可以由Data属性来访问。不过,用户对数据的修改并不直接反映到Data属性中,而是临时写到一个日志即Delta属性中,这样做的好处是以后随时可以取消修改。
不过,这里要说明一点,尽管用户的修改并没有反映到Data,当用户在数据控件中看到的却是最新修改的数据。如果一条记录被反复修改了多次,用户看到的只是最新的数据,但日志中却记载了多次。
要取消上一次的修改,调用UndoLastChange函数。
UndoLastChange:需要传递一个布尔类型的参数叫FollowChange,如果FollowChange参数设为True,光标就移到被恢复的记录上,如果FollowChange参数设为False,光标仍然在当前记录上。
UndoLastChange只能取消上一次的修改,如果想一下子取消所有的修改,首先要选择一个记录,然后调用RevertRecord。
RevertRecord:将从日志中取消所有对当前记录的修改。
ChangeCount:属性返回日志中记载的修改次数。如果一条记录被反复修改了多次,每调用一次UndoLastChange能够逐级取消上一次的修改。
TClientDataSet还有一个SavePoint属性,它能把当前的编辑状态保存起来,以后随时可以返回当时的状态。
例如,可以这样保存当前的状态:
BeforeChanges := ClientDataSet1.SavePoint;
以后,可以这样来恢复当时的状态:
ClientDataSet1.SavePoint := BeforeChanges;
应用程序可以保存多处状态,可以恢复其中一个状态,不过,一旦某个状态
您可能关注的文档
- Chapter3 材料科学与行为工艺计算机模拟.ppt
- chapter3-3电力系统经济调度与自动调频2.pdf
- Chapter04存储器管理.ppt
- Chapter4多媒体数据压缩与编码技术.pdf
- chdy%tfe铁矿石项目商业计划书.doc
- chp 6.2 三相交流电压型PWM变频电源及控制方法.ppt
- chp4.5双闭环调速系统动态参数工程的设计方法.ppt
- chp07_小波与小波变换1.ppt
- CIA考试模拟考场第一部分样题.doc
- CIO眼中逆向创新(郭昕).pdf
- 2024秋新华师大版数学七年级上册教学课件 3.5 最基本的图形—点和线 3.5.2 线段的长短比较.pptx
- 冀教版数学三年级下册全册课件(2025年2月修订).pptx
- 苏教版高中生物必修2全册教学课件.pptx
- 鲁科版高中物理必修第三册全册教学课件.pptx
- 2024年秋季学期新人教版七年级上册数学课件 2.2 有理数的乘法与除法2.2.2有理数的除法课时1.pptx
- 2024年秋新青岛版七年级上册数学课件 3.3 代数式的值.pptx
- 人教版高中数学必修第一册全册A教学课件.pptx
- 西南师大版数学三年级下册全册课件(2025年3月修订).pptx
- 2024年秋季新人教版一年级上册数学课件 第5单元 20以内的进位加法第3课时 多种方法计算9、8、7、6加几.pptx
- 2024年新人教版七年级上册数学课件 2.3.2 科学计数法.pptx
文档评论(0)