浅论基于Delphi的数据库开发
摘 要:详细分析了delphi下应用数据库的方法。Delphi下的数据库开发有着很强的优势,这里对其进行了总结,对delphi的访问组件和数据操作组件进行了详细的分析。给出了一个实例来进行说明。
关键词:delphi;数据库;ODBC;面向对象
引言
目前为止计算机软件开发分为两个不同的体系,一个体系是使用传统的程序设计语言(如Pascal、Basic和C等)开发数值控制、数值运算等软件。另一个体系则是通用的数据库管理软件领域(数据库应用程序的开发)。数据库系统为我们提供了一种把与我们的工作和生活紧密相关的信息集合在一起的方法,它还提供了在某个集中的地方存储和维护这些信息的方法。数据库系统主要由三大部分组成:数据库管理系统(DBMS:它是专门负责组织和管理数据信息的程序)、 数据库应用程序(它使我们能够获取、显示和更新由DBMS存储的数据)、数据库(按一定结构组织在一起的相关数据的集合)。
1 delphi数据库开发
Delphi中处理数据库主要有两种方法,也就是BDE、ADO,从Delphi 6.0开始还加入了一种dbExpress方法。Delphi还提供了专门处理Borland 公司自己的数据库产品InterBase 数据库的专门的方法。
BDE(Borland Databas Engine),是Delphi中最古老的技术,从delphi 2.0加入BDE 技术以后,一直是Delphi处理数据库的事实上的标准。BDE 是一个基于驱动程序的体系结构,每一种数据格式或数据源都有一种驱动程序来驱动相近的数据源。BDE 可以很好的支持现在最流行的ODBC API方法,ODBC是一种C/C++ 应用程序编程接口(API ),无论是对任何一种客户/ 服务器关系型数据库管理系统(RDBMS ),还是最流行索引顺序访问方法(ISAM)数据库(Jet、Foxpro)都能很好的访问。
ADO 技术是微软提出来的处理关系型数据库和非关系型数据库的新技术,它基于微软被称为OLE DB的数据访问模式,它是专门为了给大范围商业数据源提供访问而设计的,包括传统的关系型数据表、电子邮件系统、图形格式、Internet资源等。ADO 所需内存更少,更适合大流量和大事务量的网络计算机系统。
2 delphi数据库开发优势
如果使用数据库语言进行传统的算术编程,虽然也能完成相应的功能,但是其编程过程可能极为复杂。如果使用传统的编程语言进行数据库编程,通过调用专用的数据库应用程序接口函数和过程,利用这些函数和过程提供的功能,可能也能做得比较完善,但这做起来大多是极其困难的。而Delphi结合了两个体系的优点,它结合了传统的编程语言Object Pascal和数据库语言的强大功能,它即可以用于传统的算术编程又可以用于数据库编程,特别是Delphi具有强大的数据库功能,利用Delphi的数据库工具,我们根本不需要编写任何Object Pascal代码便可以创建一个简单的数据库应用。
3 Delphi数据库常用组件
3.1数据访问组件
Table、Query和Storedproc三个组件也称为数据集组件,用于和数据库连接,可将这些组件视为数据库,对它们的操作就可认为是对数据库的操作。
DataSource组件是数据集组件和数据控制组件的连接媒介。数据控制组件是用户操作数据库中数据的界面,只有通过DataSource才能和数据集组件连接,从而获得数据用来进行显示、修改等操作。
?Query组件是利用结构化查询语言(Structured Query Language)通过 BDE来操作数据库的,采用SQL来实现。
Storedproc组件是通过 BDE对服务器数据库进行操作的,常用于客户/服务器结构的数据库应用程序。
DataBase组件一般用于建立远程的数据库服务器--客户/服务器结构的数据库应用程序和数据库之间的连接。
Session组件是用于控制数据库应用程序和数据库连接的,主要用于复杂的功能,比如多线程数据库程序编程。
BatchMove组件 用于大批数据的转移、复制等。
UpdateSQL组件专用于只读数据库,用于缓存数据库的更新。
3.2数据控制组件
数据控制组件也可称为数据显示组件或数据浏览组件。它们的主要功能是和数据访问组件配合供用户对数据进行浏览、编辑等操作。数据控制组件在组件板上的DataControl页上,共有15个组件。它们分别是: DBGrid组件、DBNavigator组件、DBText组件、DBEdit组件、DBMemo组件、DBImage组件、DBListbox组件、DBComboBox组件、DBCheckBox组件、DBRadioGroup组件、DBLookupListBox组件、DBLookupComboBox组件、DBRichEdit组件、DBCtrlGrid组件、DBChart组件。另外还有一些组件与数据库有关。Decision Cube是一组主要用于统计的组件,可以表格或图形等直观的方式表达统计结果,不过,似乎应用的不是很广泛。QReport 组件是用来最后输出报表的组件。
4 delphi下数据库应用例子
下面以一个简单的例子演示delphi下数据库的应用。在eate事件中写入如下代码,程序启动时,将自动检测是否存在数据库别名Cntssamp,如果没有则建立之;自动检测别名Cntssamp中是否存在表格TSK(图书库),如果没有则自动建立表格TSK。
procedure eate(Sender: TObjecvar ap:TStringList;
answer:Integer;
begin ap:=;
asNames(ap); {取得别名列表}
if (f(Cntssamp)=-1) then {判断别名是否存在}
begin
answer:=eBox(BDE信息窗口,mb—OKCancel);{增加一个名为Cngzsamp的数据库别名}
if answer=IDCANCEL then
begin
; Exit; end;
ndardAlias(Cntssamp,c:delphp11,Paradox);
nfigFile; {BDE配置文件存盘}
end ;
; {取得Cngzsamp中的所有表格名称列表}
leNames(Cntssamp,,False,False,ap);
if (f(TSK)=-1) then {判断表格是否存在}
begin
answer:=eBox(Cntssamp中不存在表格TSK,现在创建吗?,表格信息窗口,mb—OKCancel);
if answer=IDCANCEL then
begin
; Exit; end;
with table1 do
begin
Active:=false;
DatabaseName:=Cntssamp; {数据库别名}
TableName:=TSK; {表格名}
TableType:=ttParadox; {数据库类型}
with FieldDefs do
begin {增加字段}
with
IndexDefs do
begin {增加索引}
Clear; {按书号字段建立主索引}
Add(SHSY,SH,[Primary,ixUnique]); end;
CreateTable; {创建表格}
end; end ; ; {释放变量ap} end;
5总结
本文对delphi在其数据库应用中的地位进行了详细的分析。指出了delphi应用于数据库的各种方法,并且用例子详细地说明。用delphi处理数据库,形象、方便,大大提高了编程的效率。
参考文献:
[1]萨师炕,王珊,数据库系统概论(第三版),高等教育出版社,1983年8月
[2]李新宇,郑丽群,吴志强.ORACLE分布式数据库及应用.计算机应用[J].2004(22):71~61.
[3]周爱民,Delphi源代码分析,电子工业出版社2004年9月