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

2016-02-19 18:24 4 1 收藏

下面图老师小编跟大家分享一个简单易学的Delphi开发单机瘦数据库程序要点教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

  一、概述
  
  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:windowsdesktopest.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下测试通过。
  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1617551.html

延伸阅读
  下是Delphi数据库应用程序中常见错误、原因/解决方法:   数据感知控件DataSource属性未设置或者设置错误(链接为其他的DataSource) 原因:在设计时不小心改动,拷贝粘贴过程中未全部更改   测试时标准代码中没有数据,无法进行测试 解决:确定需要输入数据的表格的先后顺序,在依次输入测...
  学习Delphi有一个星期了,Delphi是Pascal的派生,可是说学过pascal到学起来很容易,当然我学过VB(visual basic),当然相对来说比较熟悉这门语言,可是时间长了不学也忘记了好多,但是学习Delphi上手快多了,尤其是我现在学的这本书是关于Delphi数据库设计,学习的过程中好多当年学VB时候那些捆绑数据库控件比如:ADO等都浮现在脑海中...
在当前数据库领域,已有越来越多的人开始采用Access。它是一个功能强大的数据库管理系统和MIS系统开发工具,具有界面友好、易学易用、开发简单、接口灵活等特点。现将本人在使用Access时体会到的一些经验在此与大家交流。 数据库设计的技巧 1. 统一规划 所谓数据库设计是指从对现行非计算机管理的数据库系统的分析到最...
DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //声明连接字符串 Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;&#...
一个程序连接数据库中间就需要有一个数据库连接引擎 笔者在使用Delphi的过程中,共使用过几种连接方式连接Access,SqlServer,Oracle,IBM UDB,IBM AS/400... 1.BDE     这是使用Delphi最多的一种方式,建立一个BDE别名可以在控制面板中的BDE Administration中添加,不过我习惯在SQL Explorer中建立,因为...

经验教程

635

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部