用Delphi开发数据库程序经验三则

1.建立临时表

数据输入是开发数据库程序的必然环节。在Client/Server结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客户端)建立临时数据表来存储用户输入的数据,待提交后,清除本地表数据。这种方法的好处是:提高输入效率,减小网络负担。

由于用户一次输入的数据量一般情况下较小(不会超过几百条记录),所以临时表可以建立在内存中,这样处理速度较快。

方法1:使用查询控件(TQuery)

第1步:在窗体上放上查询控件(TQuery),设置好所连接的数据表。

第2步:使TQuery. CachedUpdates=True;

TQuery. RequestLive=True

第3步:在原有的SQL语句后加入一条Where子语句,要求加入这条Where子语句后SQL查询结果为空。

例如:

  SELECT Biolife.″Species No″, Category, Common_Name, Biolife.″Species Name″, Biolife.″Length (cm)″, Length_In, Notes, Graphic
    FROM ″biolife.db″ Biolife
   where Biolife.Category=′A′ and Biolife.Category=′B′

这样临时表就建立完成了。

方法2:使用代码创建临时表

代码如下:

  function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet;
   var
TempTable:TClientDataSet;
   begin
   TempTable:=nil;
   Result:=nil;
   if AFieldDefs$#@60;$#@62;nil then
   begin
   try
   TempTable:=TClientDataSet.Create(Application);
   TempTable.FieldDefs.Assign(AFieldDefs);
   TempTable.CreateDataSet;
   Result:=(TempTable as TDataSet);
   Except
   if TempTable$#@60;$#@62;nil then
TempTable.Free;
  Result:=nil;
   raise;
    end
end
  end;

在程序中按如下方法使用:

  procedure TForm1.Button1Click(Sender: TObject);
   var
ADataSet:TDataSet;
   begin
   ADataSet:=TDataSet.Create(Self);
   with ADataSet.FieldDefs do
   begin
   Add(′Name′,ftString,30,False);
   Add(′ ue′,ftInteger,0,False);
   end;
   with DataSource1 do
   begin
   DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
   DataSet.Open;
   end;
   ADataSet.Free;
   end;

临时表创建完成。

方法1使用简单,但由于利用查询控件,清空数据时需要查询服务器后台数据库,所以速度稍慢,而且不适用于临时表中各个字段由数个数据表的字段拼凑而成的情况。方法2适用范围广、速度快,但需要编写代码。(代码中TFieldDefs的使用方法十分简单,见Delphi的联机帮助)。

时间: 2016-03-26

用Delphi开发数据库程序经验三则的相关文章

第十三章-Delphi开发数据库应用程序概述(二)(2)

13.3.3 数据库窗体专家和数据库操作台(DBD) Delphi为用户开发简单的数据库应用程序提供了一个开发工具叫做"数据库窗体专家"(Database Form Expert),在Delphi系统菜单Tool菜单下可以找到. 数据库窗体专家能够自动生成简单的数据库应用程序中所必须完成的许多任务,它还可以生成基于单个数据库表的应用程序窗体或基于主要──明细型多个数据库表的应用程序窗体,数据库窗体专家能够自动完成的任务如下: ● 放置数据库部件到窗体中(TDataSource部件) ●

第十三章-Delphi开发数据库应用程序概述(一)(1)

13.1 数据库系统概述 数据库系统为我们提供了一种把与我们的工作和生活紧密相关的信息集合在一起的方法,它还提供了在某个集中的地方存储和维护这些信息的方法.数据库系统主要由三大部分组成:数据库管理系统(DBMS:它是专门负责组织和管理数据信息的程序).数据库应用程序(它使我们能够获取.显示和更新由DBMS存储的数据).数据库(按一定结构组织在一起的相关数据的集合). 一般来说,DBMS和数据库应用程序都驻留在同一台计算机上并在同一台计算机上运行,很多情况下两者甚至结合在同一个程序中,以前使用的大

第十三章-Delphi开发数据库应用程序概述(一)(3)

13.3 Delphi数据库的体系结构 Delphi使用可视化的部件创建数据库应用,跟创建其它的非数据库应用程序一样,数据库部件都具备一定的属性,程序设计人员可以在设计过程中设置部件的多种属性,也可以在程序运行过程中通过程序来设置部件的各种属性. 在Delphi部件板上有两页数据库部件用于开发数据库应用程序: 数据访问部件页:该页上的部件主要用于说明有关的数据库的信息,如应用程序要访问(连接)的数据库,要访问数据库中的具体的数据库表,以及要访问表中哪些字段等,在实际的开发应用中常用的部件有TDa

第十三章-Delphi开发数据库应用程序概述(一)(2)

13.2.1 Delphi的数据库特性 跟其他的应用程序一样,Delphi提供了许多部件以方便地创建数据库应用程序.数据库对象的数据成员既可在设计阶段设置,也可在运行阶段通过程序代码进行设置.Delphi的部件板上提供了两页数据库应用程序开发中所要使用的部件: 数据访问页(Data Access Page)上的部件用于直接访问数据库中的数据库表. 数据控制页(Data Control Page)上的部件用来与用户交互,显示.修改数据库中的数据. 数据库应用程序首先是利用Delphi提供的数据库部

第十三章-Delphi开发数据库应用程序概述(二)(3)

3.系统运行和维护 一个应用系统性能的优劣,效率的高低始终应当由用户来做出判决,应用程序在运行过程中,用户会提出一些新的需求和建议,根据用户需求的变化,应当对应用程序做一定的修改,使其进一步地得到完善和提高. 13.4.3 交付数据库应用程序 交付数据库应用程序意味着将它交付给最终用户,并且提供应用程序运行所需的软件,非数据库应用程序往往只需要一个EXE文件,而数据库应用程序要包括下列几类文件: ● 数据库应用程序生成的EXE文件和DLL文件(如果有的话) ● 必要的辅助文件(如Readme文件

使用delphi 开发多层应用(三)Delphi常用多层框架介绍

    目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下.如有不对之处,可以拍砖.      1. DELPHI 自身提供的DataSnap       从delphi 3 开始,delphi 自身就开始支持多层开发,后期的版本逐步加强三层开发功能,在delphi 6 以后, 把这一功能叫Datasnap,并且每个都有很多变化,包括DBExpress 的数据

第十三章-Delphi开发数据库应用程序概述(二)(1)

13.3.2 数据控制部件 数据控制部件页上的部件,主要用于设计用户界面,对数据库中的数据进行浏览.编辑.插入.删除等操作.因而数据控制部件常常又被称为数据浏览部件,数据控制部件其实是在Standard页上的标准部件的基础上,相应地增加了数据浏览功能,使得它们能够显示和编辑数据库中数据信息. 数据控制部件既能够把数据库中的数据显示到窗体中,又可以将其自身的经过修改的数据写回到数据库中.下表列出了数据控制页上的数据控制部件及它们的主要用途. 表13.5 数据控制部件 ━━━━━━━━━━━━━━━

Delphi开发数据库应用程序概述

13.1 数据库系统概述 数据库系统为我们提供了一种把与我们的工作和生活紧密相关的信息集合在一起的方法,它还提供了在某个集中的地方存储和维护这些信息的方法.数据库系统主要由三大部分组成:数据库管理系统(DBMS:它是专门负责组织和管理数据信息的程序).数据库应用程序(它使我们能够获取.显示和更新由DBMS存储的数据).数据库(按一定结构组织在一起的相关数据的集合). 一般来说,DBMS和数据库应用程序都驻留在同一台计算机上并在同一台计算机上运行,很多情况下两者甚至结合在同一个程序中,以前使用的大

第十三章-Delphi开发数据库应用程序概述(二)(4)

13.4.5 安装SQL Link 安装SQL链接与安装BDE执行相同的步骤,在图13.7中只选择SQL Link检查框,然后执行安装,选择应用程序要访问的SQL数据库服务器,当选择安装SQL Link时, 安装程序会自动地安装BDE.根据用户选择的SQL数据库服务器,安装程序会自动地提示相关的特定信息,例如Informix数据库系统的链路(SQL Link)需要一个放置消息文件的地方.用户选择的每个SQL Link都使用一个或多个附加的动态链接库(DLL文件),这些文件将要拷贝到BDE目录中,