delphi开发学习四:TClientDataSet与TDataSetProvider控件使用实例
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控件使用实例的更多相关文章
- 从零开始学ios开发(四):IOS控件(1),Image View、Text Field、Keyboard
长话短说,谢谢大家的关注,这篇写了好长时间,下面继续学习ios.我将用2到3篇的篇幅来学习iphone上的一些常用控件,包括Image View.Text Field.Keyboard.Slider等 ...
- IOS开发学习笔记019-动态创建控件
动态创建控件 一.按钮 二.文本输入框 三.lable标签 注意: 只是简单的拖拽控件会毁了你,所以最好还是手动通过代码创建控件. 如果要通过代码生成按钮的话,可以在系统自带的函数viewDidLoa ...
- <WP8开发学习笔记>修改panorama全景控件的标题的大小
panorama(全景)控件非常具有WinPhone特色,但是那个巨大的标题许多时候会让人觉得违和.怎么修改它呢? 最开始想到的是加一个FontSize,结果毫无影响.╮(╯-╰)╭ <phon ...
- Android Studio 学习笔记(三):简单控件及实例
控件.组件.插件概念区分 说到控件,就不得不区分一些概念. 控件(Control):编程中用到的部件 组件(Component):软件的组成部分 插件(plugin): 应用程序中已经预留接口的组件 ...
- Excel开发学习笔记:文件选择控件、查找匹配项、单元格格式及数据有效性
一个自用的基于excel的小工具. , ), .Cells(, )) sysKpiRow.Interior.ColorIndex = ).value = , ) ...
- Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发
一.标准CRUD使用 对于标准的CRUD功能都有哪些以及MyBatisPlus都提供了哪些方法可以使用呢? 我们先来看张图: 1.1 环境准备 这里用的环境就是Java开发学习(四十)----MyBa ...
- iOS项目开发实战——学会使用TableView列表控件(四)plist读取与Section显示
文本将会实现把数据存储到plist文件里.然后在程序中进行读取.在TableView控件中依据不同的类别显示Section. 有关TableView 的其它实现,请參考<iOS项目开发实战--学 ...
- Delphi编程之好用的三方控件
Delphi的强大与其庞大的组件库息息相关,目前的XE10.1版本已自带FastReport和GDI+等,下面我们来看一下几个非常强大且实用的组件库 一.DevExpress套件 Dev包含Grid. ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
随机推荐
- bootStrap中Tab页签切换
关于$().tab()一般用来实现标签页和胶囊链接内容片段的切换,或是相关内容的页面导航: <ul class="nav nav-tabs" id="myTab&q ...
- 负载均衡@StackExchange.Redis实现Session外置--纯干货喂饱你
Redis和StackExchange.Redis redis有多个数据库1.redis 中的每一个数据库,都由一个 redisDb 的结构存储.其中,redisDb.id 存储着 redis 数据库 ...
- 【DOS】COPY命令
一:文件复制COPY 指令说明:复制一个或更多文件到指定位置,可以合并文件 语法:COPY [/A/B] source[/A|/B] [+source [/A|/b] [+...]][destinat ...
- Jenkins管理插件(备份插件)
Jenkins管理插件 为了让所有的插件在 Jenkins 内可用,所有插件的列表可以访问链接 − https://wiki.jenkins-ci.org/display/JENKINS/Plugin ...
- [WPF]解决模板中ContextMenu绑定CommandParameter的问题
直接上代码,首先是一个ContextMenu的模板: <ContextMenu x:Key="Menu" BorderThickness="0.3" Fo ...
- python3安装与环境配置和pip的基本使用
本文环境 系统: Windows10 Python版本: 3.6 安装 python安装包下载 可以选择安装版和解压版 安装版一键安装, 安装过程注意选择安装位置, xx To Path选项(勾选), ...
- SQLMAP学习笔记1 access注入
SQLMAP学习笔记1 access注入 Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点: 完全支持MySQL.Oracle.PostgreSQL.Microsoft S ...
- Spring Boot + MyBatis + Pagehelper 配置多数据源
前言: 本文为springboot结合mybatis配置多数据源,在项目当中很多情况是使用主从数据源来读写分离,还有就是操作多库,本文介绍如何一个项目同时使用2个数据源. 也希望大家带着思考去学习!博 ...
- RN 离线包集成后需要注意的一些问题
1.ReactNative 开发中如何去掉iOS状态栏的"Loading from..." 等淡黑色的弹框,很难看? 在 AppDelegate.h 中引入: #import &l ...
- Linux安装软件包
今天在坐公交的路上看到一遍文章感觉还不错,先收集了.原文链接 Linux安装软件包