TClientDataSet[1]: 浏览测试数据
想学 TClientDataSet 是在 2009 年 5 月, 但当时学不动; 现在好了, 有源码了(DBClient.pas).
希望这次学习能对其内存协调方式有所了解, 顺便学点数据库的知识.
TClientDataSet 是一个内存数据集(说"数据表"对不住它), 其内存数据可存取到本地(*.cds 或 *.xml 格式).
用 TDBGrid 可方便查看其内存数据, 但需要用数据源组件(如: TDataSource)桥接一下:
TDBGrid.DataSource ← TDataSource.DataSet ← TClientDataSet
Program Files\Common Files\CodeGear Shared\Data 下有官方提供的测试数据, 下面程序可浏览这些数据:
//假定已在设计时挂接好: ClientDataSet1、DataSource1、DBGrid1, 并添加一个 ListBox1uses IOUtils, Types;var DataPath: string;procedure TForm1.FormCreate(Sender: TObject); varsArr: TStringDynArray;s: string; begin{ 获取测试数据所在的路径 }DataPath := GetEnvironmentVariable('COMMONPROGRAMFILES') + '\CodeGear Shared\Data\';{ 获取路径下所有 cds 文件 }sArr := TDirectory.GetFiles(DataPath, '*.cds');{ 添加到列表 }for s in sArr do ListBox1.Items.Add(ExtractRelativePath(DataPath, s)); end;procedure TForm1.ListBox1Click(Sender: TObject); beginClientDataSet1.LoadFromFile(DataPath + ListBox1.Items[ListBox1.ItemIndex]); end;
其中的:
procedure TForm1.ListBox1Click(Sender: TObject); beginClientDataSet1.LoadFromFile(DataPath + ListBox1.Items[ListBox1.ItemIndex]); end;//可换成: procedure TForm1.ListBox1Click(Sender: TObject); beginClientDataSet1.Active := False;ClientDataSet1.FileName := DataPath + ListBox1.Items[ListBox1.ItemIndex];ClientDataSet1.Active := True; end;//或换成: procedure TForm1.ListBox1Click(Sender: TObject); beginClientDataSet1.Close;ClientDataSet1.FileName := DataPath + ListBox1.Items[ListBox1.ItemIndex];ClientDataSet1.Open; end;
从源码中看 Open/Close 方法和 Active 属性的关系:
{ TClientDataSet 的继承关系: TDataSet - TCustomClientDataSet - TClientDataSet } procedure TDataSet.Open; beginActive := True; end;procedure TDataSet.Close; beginActive := False; end;
从源码中查看 LoadFromFile 对 Open/Close 方法的调用:
procedure TCustomClientDataSet.LoadFromFile(const FileName: string = ''); varStream: TStream; beginClose; ...LoadFromStream(Stream); { LoadFromFile 调用了 LoadFromStream} ... end;procedure TCustomClientDataSet.LoadFromStream(Stream: TStream); beginClose;ReadDataPacket(Stream, False);Open; end;
转载于:https://www.cnblogs.com/del/archive/2010/01/20/1652118.html
TClientDataSet[1]: 浏览测试数据相关推荐
- 博客总目录(2007.11.12 - 2010.4.25)
如果我的学习记录和历程能对你有所帮助, 我非常高兴; 但是 -- "万一" 不是高手.更不是大师, 只是利用工作之余学点东西, 并感觉学得挺吃力. 内容都是写时才会, 难免稚嫩, ...
- python完美测试数据之faker!
Python中有一个神奇的库叫做faker,它可以自动帮助我们生成各种看似真实的"假"数据.让我们来看看. 安装 首先我们先来看看这个库怎么安装,其实装起来非常简单,使用 pip ...
- 软件性能测试参数化数据准备,性能测试之如何准备测试数据
作者:刘林霞 关于如何准备性能测试数据,相信不少性能测试人员也踩过不少坑:比如数据量不足,导致性能表现非常好,忽略了一些潜在性能问题:数据分布不合理,导致测试结果与线上差异较大,又要推到重来.经过n多 ...
- Faker库:生成测试数据
在做程序开发的时候,我们经常会用到一些测试数据.在 Python 中有个神库,叫做 Faker,它可以自动帮我们来生成各种各样的看起来很真的"假"数据,让我们来看看吧! 安装 首先 ...
- 2. 如何给在 SAP Business Application Studio 里开发的 OData 服务准备测试数据
在开始本步骤的学习之前,请大家务必完成前一步骤1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务的学习.换言之,大家已经在 ...
- navicat/dataGrip in IDEA/vscode/搭建mysql学习环境/beginner利用小皮控制面板(phpStudy)来快速搭建mysql的运行环境/生成测试数据并填充到表
文章目录 navicat dataGrip (database plugin of IDEA) IDEA (Ultimate ) plugin for database 基本使用 sql consol ...
- 数据采集之测试数据的造数
目录 0 环境准备: 1 软件环境的搭建 1.1 jdk的安装 1.2 scala的安装 1.3 hadoop的安装 1.4 KAFKA的安装 1.5 elastocsearch的安装 1.6 red ...
- 浏览器之战:烽烟再起?
我承认这个题目有点哗众取宠... 宣战:IE归来 在几个预览demo之后,微软终于在2011/2/10发布了他们的IE9 beta版本.为了壮势,微软在IE博客里用一些demo和测试数据来证明IE9比 ...
- 利用Python Faker库制造测试数据
在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据. 由于现在的业务系统数据多种多样,千变万化.在手动制造数据的过程中,可 ...
最新文章
- C++ 模板详解(一)
- 厉害了,BATJ 必考的 Java 面试题!
- Layer 父子页面之间的交互
- 将任意图像转成 HTML5 Canvas
- 第一款Layer 2钱包Rollups Wallet已上线苹果AppStore
- 两个框架之间的数据类型转换,需要桥接技术
- 三思笔记_在使用buildconfig调试之前要三思
- unity基础(1)——unity编辑器的基本介绍
- gaster字体转换器_gaster语言翻译器
- LPC1788启动代码分析
- 卷积的本质及物理意义
- 学习帮——懒人菜谱,电饭煲可以做的菜!
- 【学习笔记】使用OpenSSL生成CA证书-配置Nginx代理服务器使用HTTPS协议
- base64编码解码讲解
- 狼 我一头独狼 在狂奔 嗅找正正狼群
- 青春三部曲(《且听风吟》,《一九七三年的弹子球》,《寻羊冒险记》)--[日]村上春树...
- 用快解析内网穿透实现零成本自建网站
- 十五天学会Autodesk Inventor,看完这一系列就够了(九),主题/色彩/单位设置
- 计划赶不上变化,为什么还要计划呢?
- 易之 - 我是个大师(2014年3月6日)
热门文章
- mysql8 设置了默认值 CURRENT_TIMESTAMP 依然报null问题
- ionic4 hammerjs手势事件左滑右滑
- html获取contextpath,JavaScript中${pageContext.request.contextPath}取值问题及解决方案
- html5制作拼图游戏教程,用HTML5制作视频拼图的教程
- linux脚本done报错,很简单的脚本程序,总是报错
- 2017模拟计算机考试试题,2017年计算机考试四级模拟试题及答案
- 智能灯控制页面用HTML编写,智能家居系统中智能化灯光控制的设计实现
- python写乘法口诀表好记方法_如何用python编写乘法口诀表
- app运行租用服务器,app租用服务器
- 网页中竖的目录怎么改成横的_一点基础也没有,想快速练漂亮硬笔字,先练什么?怎么练进步明显?...