https://blog.csdn.net/onebigday/article/details/5602619
ClientDataSet初步使用
2010年05月18日 08:36:00

阅读数:5856

用Delphi以来,一直在用TSimpleDataset控件,因为它方便,但有人对我说,TSimpleDataSet不好,最好还是用TClientDataSet。一开始还不以然认为很方便,还没发现什么不好。后来有一次想把TSimpleDataSet的SaveToFile把它保存为二进制形式文件后,竟然无法用LoadFromFile再导到TsimpleDataSet中了,查了好久才知道用TClientDataSet的LoadFromFile才可以。过一段时间,又发现TSimpleDataSet没有Aggregates属性,想想,还是用多用用TClientDataSet才行。不能只会用TSimpleDataSet。

要用TClientDataSet,就要多比TSimpleDataSet用两个控件,一个是TdataSetProvider,另一个是TSQLQuery。下面说说我是怎么用的:

1。添加TSQLConnection控件,在DBExpress控件组中

2。添加TSQLQuery,在DBExpress控件组中

3。添加TDataSetProvider,在DataAccess控件组中

4。添加TClientDataSet,在DataAccess控件组中

5。添加TDataSource,在DataAccess控件组中

6。添加TDBGrid,在DataControls控件组中

然后设置TSQLQuery的SQLConnection属性,指向TSQLConncetion

TDataSetProvider的DataSet属性指向TSQLQuery

TClientDataSet的ProviderName属性指向 TDataSetProvider

TDataSource的DataSet属性指向TClientDataSet

TDBGrid的DataSource属性指向TDataSource

它们的依靠关系也就是:

TDBGrid->TDataSource->TClientDataSet->TDataSetProvider->TSQLQuery->TSQLConncetion

然后要知道,TClientDataSet的CommandText属性是不可写的,要变换不同的SQL语句进行查询,就修改TSQLQuery的SQL.Text属性,然后用TClientDataSet的Open方法执行SQL语句。

ClientDataSet初步使用的更多相关文章

  1. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  2. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  3. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

  4. 初步认识Node 之Node为何物

    很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了.    Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...

  5. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  6. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  7. Azure底层架构的初步分析

    之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...

  8. CozyRSS开发记录14-RSS源管理初步完工

    CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ...

  9. 初步了解CPU

    了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...

随机推荐

  1. js工厂函数创建对象与对象构造函数的理解

    工厂函数,顾名思义,就是通过一个"工厂的加工" 来创建一个对象的函数 //工厂函数 function createPerson(name,sex){ sex = sex == '男' ? '女' : ...

  2. 内存分析工具MAT(Memory Analyzer Tool)从安装到使用

    一.安装 首先,你得有一个Eclipse(因为MAT是Eclipse的插件) 然后,你要在Eclipse上安装MAT,步骤如下: 1.点击Help,Install New Soft,就出现了以下Ins ...

  3. modinfo - 显示当前内核模块信息

    总览 modinfo [ options ] <module_file> 描述 modinfo 工具软件用来对内核模块的目标文件 module_file 进行测试并打印输出相关信息. 选项 ...

  4. 03javascript01

    1.javascript语法体系 1)EMCA基础语法(统一) 2)BOM编程(不统一) 3)DOM编程(不统一) 1.1 javascript使用 <!DOCTYPE html> < ...

  5. activity manager

    首先 activity manager 作为一个独立的服务存在,所有系统中的所有 app 的 activity 都通过这个 service 来管理 同时 activity manager 维护着多个 ...

  6. vecto容器中一些没有注意到的地方

    vector容器 vectoor是一个单口容器. vector动态增长的基本原理 当插入新元素的时候,如果空间不足,那么vector会重新申请更大的一块内存空间,将原空间数据拷贝到新空间,释放旧空间的 ...

  7. C++HeartCode

    #include <iostream> int main() { int A=43,B=A/2, C=B/2,x,y,i=B,j=-C;for(y=0;y<B;j=(++y)-(C+ ...

  8. luogu P3601 签到题

    链接P3601 签到题 求\[\sum_{i=l}^{r} i-\phi_i\] \(l,r\leq 10^{12},\ r-l\leq 10^6\) 杜教筛似乎做不了. 然后再看\(l\),\(r\ ...

  9. proxy配置

    关于config.js里面proxy的配置:                  proxy: { '/api': { target: 'http://192.168.***.**:8500', cha ...

  10. NOIP模拟赛(by hzwer) T1 小奇挖矿

    [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值 w)的飞船,按既定 路线依次飞过喵星系的 n 个星球. [问题描述] 星球分为 2 类:资源型和维修型. 1. 资源型:含矿物质量 ...