分享
 
 
 

Delphi开发单机瘦数据库程序要点

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

一、概述

Delphi作为Windows下的一种快速开发工具,不仅能开发一般的Windows应用程序,而且还具有强大的数据库应用程序开发功能。Delphi本身提供了对BDE,ODBC,ADO和InterBase几种数据库驱动的支持,能够满足不同应用对数据库程序开发的需要。

然而,在发布用Delphi开发的数据库程序时,除了要安装应用程序之外,还需要同时发布数据库驱动程序。这对于一些只涉及单个或多个简单表数据存储的单机应用程序来说,就显得有点头重脚轻的感觉了。况且,有些应用程序本身需要存储大量数据,但本身又要求结果短小精悍的话,用Delphi常规开发数据库的方法就不能满足需要了。

那么,有没有办法解决上述矛盾,开发出能脱离庞大的数据库驱动程序的”瘦”数据库单机应用程序呢?Delphi5在Midas控件面板中提供了一个TClientDataSet控件,可以很好地解决这个问题。

二、TClientDataSet使用要点

TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为.cds,是基于文件型数据存储和操作的控件。该控件封装了对数据进行操作处理的接口和功能,而本身并不依赖上述几种数据库驱动程序,基本上能满足单机”瘦”数据库应用程序的需要。

1.TClientDataSet的基本属性和方法介绍

1).FieldDefs: 字段定义列表属性

开发者可通过单击属性编辑器中该属性编辑按钮,或在该控件上单击右键选择弹出菜单中的”Fields Editor”菜单进行字段编辑。设置完此属性后,实际上就相当于定义了表的结构;如果想装入已有的数据表的结构和数据,可通过单击右键选择弹出菜单中的”Assign Local Data”菜单,从弹出对话框中选取当前窗体中已与数据库连接好的数据集控件名称即可(当前窗体中必须已放置好要套用的数据集控件并打开激活)。

使用注意:

对于自定义的字段名表,该属性编辑完后,该控件仍然无法打开。必须右键单击该控件,选择弹出菜单中的”Create DataSet”菜单,让该控件以上述编辑的字段列表为依据,创建数据集后,才能够被激活打开和使用。否则,会出现类似”ClientDataSet1: Missing data provider or data packet.”的错误(包括在运行期,运行期可调用该控件的CreateDataSet方法,从而动态定义字段和表)。

2).FileName属性

说明:数据存储文件的名称。

因该控件是基于文件型的数据操作控件,因此,必须指定所操作的数据文件名称(默认扩展名称.cds),从而打开和激活该控件,进而进行数据编辑。

例1:利用此属性打开指定的.cds文件

var

Path: string;

begin

Path := ExtractFilePath(Application.ExeName); //取得可执行文件路径

CDataSet1.FileName := Path + ’test.cds’;

CDataSet1.Open;

end;

3).CreateDataSet方法

说明:该方法以FieldDefs中的字段名表为结构建立数据集,常用来进行动态定义表。

例2:动态创建一具有姓名和年龄两个字段的数据集。

//创建字段名表

CDataSet.FieldDefs.Clear;

with CDataSet.FieldDefs.AddFieldDef do

begin

Name := ’Name’;

Size := 10;

DataType := ftString;

end;

with CDataSet.FieldDefs.AddFieldDef do

begin

Name := ’Age’;

DataType := ftInteger;

end;

//动态创建数据集

CDataSet.CreateDataSet;

//激活和打开该数据集

CDataSet.Open;

4).Open方法

说明: 打开和激活数据集控件,从而进行数据编辑。

a. 如果指定了FileName属性,则直接用Open方法即可打开和激活该控件,见例1。

b. 如果未指定FileName属性,可使用例2方法动态创建和打开数据集,进而操作数据。

5).LoadFromFile和SaveToFile

说明:从文件中装入表结构和数据以及存储数据到文件。该方法类似于Word中的打开新文件和另存为的功能。

例3:将数据集的数据存储到指定文件中

CDataSet.SaveToFile(’c:\windows\desktop\test.cds’);

6).First(到首),Prior(向前),Next(向后),Last(到尾),Edit(编辑),CanCel(取消编辑),Post(保存),Insert(插入记录),Append(添加记录),Delete(删除),Refresh(数据刷新)等数据集常用方法

说明:当指定了FileName属性时,其Post方法可将数据存入指定的文件中,类似其SaveToFile方法;如果未指定存储文件名,则Post方法只将数据存储在RAM中。其它方法,同一般数据集控件使用方法,略。

7).Filter, Filtered: 过滤筛选属性

说明:用于筛选指定条件的记录,用法同一般数据集控件,略。

例4:在已经激活打开的数据集中筛选性别为男性的记录

CDataSet.Close;

CDataSet.Filter := ’性别=’’’ + ’男’ + ’’’’;

CDataSet.Filtered := True;

CDataSet.Open;

2.使用TClientDataSet控件的应用程序发布的注意事项:

如前所述,使用TClientDataSet控件的程序发布时不需要任何数据库驱动程序,大大节省了安装文件的大小。但是,在发布程序时别忘了将Windows系统目录下midas.dll(257KB)与应用程序一起发布(运行必须),否则,程序仍然无法正常运行。

三、结束语

通过使用Delphi中TClientDataSet控件,既实现了应用程序可彻底脱离数据库驱动程序,也实现了常规数据集控件简单易用的特性,为编写”瘦”数据库应用程序提供了一种技术方法和手段。

上述程序在Pwindows98,Delphi5下测试通过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有