1、TClientDataSet控件

通过TClientDataSet控件可以建立瘦客户端的应用程序,且数据执行效率较高,但它不能和数据库自动连接,程序中必须制定它如何获取数据。一般情况下,TClientDataSet 控件获取数据的方式主要有 3 种:从本地文件中获取、从本地的另外一个数据集对象中获取以及通过 IAppServer 接口来获取。

2.TDataSetProvider 控件
TDataSetProvider 控件基于数据集为应用程序中的其他控件提供数据, 并将对数据的更新传回数据集或数据集相关的数据库服务器。

3.TClientDataSet 控件与 TDataSetProvider 控件应用实例

在这里依旧使用delphi开发学习一中建立的工程Adotest,在工程ADOtest里新建窗体TCDatafrm,在窗体上添加

控件ADOQuery1,DataSetProvide1,ClientDataSet1,DataSource1,DBGrid1,Button1,

并设置其属性:ADOQuery1.connection      =dlinkfrm.ADOConnection1;

DataSetProvide1.DataSet  =ADOQuery1;

DataSource1.DataSet         =ClientDataSet1,

DBGrid1.DataSource           =DataSource1;

这些属性都可以在视图中直接选择设置,如下图所示:

通过以上控件的使用及其属性设置后,在“查询”按钮的单击事件里添加适当代码后就可以实现数据的查询与显示。以下代码为“查询”按钮的单击事件代码:

procedure TTCDatafrm.Button1Click(Sender: TObject);
begin

ADOQuery1.close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT * FROM BASE_DATA');

ADOQuery1.open;

//将 DataSetProvide1 提供的数据传给 ClientDataSet1

ClientDataSet1.Data:=DataSetProvide1.Data;

end;

运行程序后,单击“查询”按钮,得到如下图所示的查询结果。

该例控件实现的功能与前文开发学习三中ADOQuery,DataSource控件实现的功能的结果相同。但在开发操作中由于将数据库操作封装在

类中,因此数据的查询与显示通过ADO控件和DataSource控件实现起来相对比较困难,所以一般可以通过TClientDataSet控件和TDataSetProvider控件进行中间数据的传递。

下面附上实例开发的源代码下载链接:

http://download.csdn.net/detail/u011846249/9029883
---------------------
作者:FreeSoar1
来源:CSDN
原文:https://blog.csdn.net/u011846249/article/details/47785251
版权声明:本文为博主原创文章,转载请附上博文链接!

delphi开发学习四:TClientDataSet与TDataSetProvider控件使用实例的更多相关文章

  1. 从零开始学ios开发(四):IOS控件(1),Image View、Text Field、Keyboard

    长话短说,谢谢大家的关注,这篇写了好长时间,下面继续学习ios.我将用2到3篇的篇幅来学习iphone上的一些常用控件,包括Image View.Text Field.Keyboard.Slider等 ...

  2. IOS开发学习笔记019-动态创建控件

    动态创建控件 一.按钮 二.文本输入框 三.lable标签 注意: 只是简单的拖拽控件会毁了你,所以最好还是手动通过代码创建控件. 如果要通过代码生成按钮的话,可以在系统自带的函数viewDidLoa ...

  3. <WP8开发学习笔记>修改panorama全景控件的标题的大小

    panorama(全景)控件非常具有WinPhone特色,但是那个巨大的标题许多时候会让人觉得违和.怎么修改它呢? 最开始想到的是加一个FontSize,结果毫无影响.╮(╯-╰)╭ <phon ...

  4. Android Studio 学习笔记(三):简单控件及实例

    控件.组件.插件概念区分 说到控件,就不得不区分一些概念. 控件(Control):编程中用到的部件 组件(Component):软件的组成部分 插件(plugin): 应用程序中已经预留接口的组件 ...

  5. Excel开发学习笔记:文件选择控件、查找匹配项、单元格格式及数据有效性

    一个自用的基于excel的小工具. , ), .Cells(, ))          sysKpiRow.Interior.ColorIndex =  ).value = , )           ...

  6. Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发

    一.标准CRUD使用 对于标准的CRUD功能都有哪些以及MyBatisPlus都提供了哪些方法可以使用呢? 我们先来看张图: 1.1 环境准备 这里用的环境就是Java开发学习(四十)----MyBa ...

  7. iOS项目开发实战——学会使用TableView列表控件(四)plist读取与Section显示

    文本将会实现把数据存储到plist文件里.然后在程序中进行读取.在TableView控件中依据不同的类别显示Section. 有关TableView 的其它实现,请參考<iOS项目开发实战--学 ...

  8. Delphi编程之好用的三方控件

    Delphi的强大与其庞大的组件库息息相关,目前的XE10.1版本已自带FastReport和GDI+等,下面我们来看一下几个非常强大且实用的组件库 一.DevExpress套件 Dev包含Grid. ...

  9. winform快速开发平台 -> 基础组件之分页控件

    一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...

随机推荐

  1. c3p0 ComboPooledDataSource无法识别的问题

    maven项目下,基本就是导错包了的问题. 下面那个才是连接池的.

  2. [BZOJ1974][SDOI2010]代码拍卖会[插板法]

    题意 询问有多少个数位为 \(n\) 的形如 \(11223333444589\) 的数位值不下降的数字在\(\mod p\) 的意义下同余 \(0\). $n\leq 10^{18} ,p\leq ...

  3. 关于自动化测试框架,所需代码技能,Java篇——参数配置与读取.

    前言: 说在前边.像我这种假期不出去浪,在这里乖乖写文章研究代码的人,绝壁不是因为爱学习,而是自己不知道去哪玩好,而且也不想玩游戏,看电视剧什么的,结果就无聊到看代码了…… 至于如何解读代码,请把它当 ...

  4. Kali Linux菜单中各工具功能大全

    各工具kali官方简介(竖排):https://tools.kali.org/tools-listing 名称 类型 使用模式 功能 功能评价 dmitry 信息收集   whois查询/子域名收集/ ...

  5. [Java] Design Pattern:Code Shape - manage your code shape

    [Java] Design Pattern:Code Shape - manage your code shape Code Shape Design Pattern Here I will intr ...

  6. monkey测试入门2--测试步骤、常用参数、常规monkey命令

    <凤栖梧> 柳永 伫倚危楼风细细,望极春愁,黯然生天际.草色烟光残照里,无言谁会凭栏意? 拟把疏狂图一醉,对酒当歌,强乐还无味,衣带渐宽终不悔,为伊消得人憔悴. 简要步骤:adb devi ...

  7. Proe/Creo 零件库mnu文件制作批处理

    proe零件库自定义时需要菜单文件mnu,百度了下网上还没有人制作,偶然间Google时在PTC论坛上看到一德国人分享了自己制作的bat文件用于对文件夹(及子文件夹)产生mnu文件,我在将他的文件翻译 ...

  8. RSA详解

    RSA RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作.RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥 ...

  9. Shuffle Bags让你的随机不那么随机

    前言 当我最初写游戏时,我经常使用标准Random()函数,然后写一堆if和else条件来我获得预期结果.如果结果不太好,我会写更多的条件进行过滤或者筛选,直到我觉得游戏变得有趣.最近我发现有更好的方 ...

  10. 2.2 Oracle之DML的SQL语句之多表查询以及组函数

    一.SQL的多表查询: 1.左连接和右连接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHE ...