数据库应用程序.ppt
《数据库应用程序.ppt》由会员分享,可在线阅读,更多相关《数据库应用程序.ppt(98页珍藏版)》请在三一办公上搜索。
1、数据库应用程序,9.1 Delphi的数据库访问机制9.2 数据库程序向导9.3 数据库资源管理器9.4 常用的数据库控制组件9.5 Database Desktop的使用,退出,9.1 Delphi的数据库访问机制,9.1.1 数据库的基本概念所谓数据库(database)是指一些表格(table)的集合,而表格是由一组相关联的记录(record)组成的。一个记录有许多的属性(attribute)组成,其中的一个属性可用来区分不同的记录,这个属性就是关键值(key)属性。,在微机中,通常一个文件就是一个表格,如在xBASE中的一个表格就是一个.DBF文件。因此,在xBASE中,数据库是指一些
2、小型的数据库系统,也就是一个文件即为一个数据库(表格)的系统;而在SQL Server数据库系统中是指一个数据库中可以包含许多表格及其它对象的系统,功能大于xBASE数据库系统,如图9-1所示。,9.1.2 Borland数据库引擎(BDE)Borland数据库引擎(BDE)是32位的基于Windows的核心数据库引擎,是一个存取数据的中间层(middleware layer)。BDE对开发客户/服务器应用程序提供了丰富的支持。,1.BDE的体系结构 BDE数据库驱动程序体系结构包括许多共享的服务实用程序(数据库驱动程序和其它函数)。使用数据库驱动程序可一致地存取标准的数据源:Paradox、
3、dBASE及文本数据库。也可将Microsoft ODBC驱动程序作为内置的ODBC插槽。Borland的SQL Links产品提供对SQL Server广泛的存取,包括InterBase、Oracle及Sybase。因此,编程者可以直接、明了、共享地存取多个数据源。2.面向对象 BDE在设计时是面向对象的,在运行时,应用程序可以建立各种BDE对象。这些运行时的对象可用来维护数据库实体:像数据表等。,3.Delphi数据库结构 Delphi数据库控制组件包括两类:数据存取控制组件:负责连接数据库本身,不包含数据的显示与输入 数据显示控制组件:提供建立用户界面的基本组件,用于显示与输入数据,所有
4、的数据控制组件都是通过存取数据的中间层BDE,对数据进行存取的。所有的Borland数据库产品,除Paradox for DOS及dBASE for DOS外,都是以BDE为中间层的。这样可以保证共享数据库中的数据、方便数据的存取、允许对不同平台上的不同数据库进行操作、便于移植程序。Borland数据库引擎中引入了“数据来源”(Data source)的概念。其作用是在数据存取组件与数据显示组件之间的一个中介,从而可以在程序执行时将数据存取组件与数据显示组件独立分开操作、切换。如图9-2所示。,在理解了BDE与数据来源的概念后,就可通过图9-3来理解Delphi的数据库结构。,9.2 数据库程
5、序向导,最容易产生数据库程序的工具就是使用数据库窗体向导(Database Form Wizard)。数据库窗体向导可以建立两类的数据库程序:简单的数据库程序 主/明细数据库程序,数据库窗体向导可以将窗体与Table及Query组件连接起来;编写Query组件的SQL语句;将交互的与非交互的组件添加到窗体上;定义Tab键顺序;将DataSource组件与交互组件及Table/Query组件连接起来。启动数据库窗体向导使用Database|Form Wizard命令。启动后的画面如图9-4所示。,根据数据库程序向导,设定一些信息:建立简单的表格窗口还是两种以上的主/明细表格窗口;做数据输入的表格
6、窗口还是查询的表格窗口;选择数据库及显示的数据库字段,最后数据库窗体向导就会自动生成数据库程序的窗体,并产生相应的应用程序。如图9-5所示。,9.3 数据库资源管理器,数据库资源管理器可以显示数据库、数据表及字段的层次图,以便浏览和修改数据对象的结构和内容。启动数据库资源管理器,使用的命令为Database|Explorer,数据库资源管理器启动后的画面如图9-8所示。,数据库资源管理器的左边为一个对象浏览器,用来显示数据库或数据路径对象的层次图;右边用来显示左边中选定对象的相关内容,包括对象的定义、对象概要、数据等,还可以使用SQL语句进行查询。将数据库资源管理器中的对象Table或Fiel
7、d拖动到集成开发环境的窗体中,就可自动创立相应窗体的对象。如将一数据表拖动到窗体时,可以生成已相关联好Table、DataSource、DBGrid等组件。,9.4 常用的数据库控制组件,9.4.1 Table组件 Table组件在BDE页标签上。Table组件通过Borland数据库引擎(BDE)实现对数据库表格的存取。它是数据库引擎与DataSource组件的界面。,DatabaseName属性可以指定要存取的数据库;TableName属性指定要存取的数据表;设置ReadOnly属性为True,则只能查看数据表的内容;设置Exclusive属性为True,则以独占方式打开数据表;若要与索引
8、文件一同使用数据表,使用 IndexName属性;使用MasterFields和MasterSource属性建立对主数据表的连接。调用GotoCurrent方法将光标移动到与该数据表相同数据库中的另一数据表table中相同位置。,设置属性Active为True或调用Open方法,以浏览方式打开数据表;设置Active属性为False或调用Close方法可关闭数据表;调用First、Next、Prior、Last及MoveBy方法在数据表中移动;调用SetKey、FindKey、FindNearest、GotoKey和、GotoNearest 方法进行数据库查找。BOF及EOF属性,用来确定光标
9、是否到达数据表开始及结束;调用Append、Insert、AppendRecord或InsertRecord方法可增加记录;调用Delete方法可删除当前的记录;调用Edit方法,允许应用程序修改数据表中的记录、Post将变化送到数据库中、Cancel则放弃修改。,使用EditRangeStart、EditRangeEnd、SetRangeStart、SetRangeEnd、ApplyRange及SetRange方法可以限制返回到应用程序的记录范围,而调用CancelRange方法则取消这些限制。1.Table组件的属性 Active属性 该属性为布尔型。设置为True,则以浏览方式打开数据库
10、;设置为False,则关闭数据库。改变Active属性的值与调用Open或Close方法是等同的。,AutoCalcFields属性 该属性为布尔型,它确定何时调用OnCalcFields事件来更新计算字段的值。若AutoCalcFields设置为True,则自动更新计算字段的值,默认为False。CachedUpdates属性 该属性为布尔型,表示是否可更新缓存。若可更新缓存,则使用缓存替代写到数据集中。可以调用ApplyUpdates方法应用于所有更新。在更新缓存期间,设置CachedUpdates为False将放弃更新。,DatabaseName属性 DatabaseName属性指定要存
11、取的数据库。可指定:定义的BDE别名 桌面数据库文件的路径名 本地InterBase服务器数据库的路径及文件 由Database组件定义的应用程序特殊别名 在改变DatabaseName属性前,使用Close方法关闭数据集。,Exclusive属性 该属性为布尔型(对Paradox或dBASE数据库有效),设置为True时,可以防止其它用户存取该数据表(独占方式使用)。若在你打开数据表时,其他的用户正在存取该数据表,则意外处理程序将等待这些用户释放要打开的数据表。若应用程序中没有提供意外处理程序时,则终止应用程序的运行。在改变Exclusive属性前,设置Active属性为False,以防止出
12、现意外。不要在对象编辑器中设置Active和Exclusive属性为True。,Filter属性 该属性为字符串型,可用来指定要在数据集中查看的记录。筛选与查询(queries)是类似的,但功能低于后者。改变Filtered属性可以开关Filter属性。筛选字符串的语法与SQL语句中WHERE子句的语法是非常类似的。Filtered属性 该属性为布尔型,用来关闭由Filter属性和OnFilterRecord事件提供的筛选。若设置为True,则符合筛选条件的记录出现;若设置为False,则数据集中的所有记录是可见的(除去以独占方式使用的记录)。,FilterOptions属性 FilterOp
13、tions 可用来更好地调整由Filter属性提供的筛选,如是否区分大小写等。IndexFieldNames属性 该属性为字符串型,用于SQL服务器中指定该组件的索引列。索引列之间用“;”分开,若列名太多或名字太长(超过255个字符的限制),可使用列号代替列名。注意:IndexFieldNames属性与IndexName属性是互斥的,设置一个将清除另一个。,IndexFiles属性 IndexFiles属性为包含dBASE数据表索引的文件名。使用TStrings的Add、Insert、Delete,和Clear方法可以添加、插入、删除及清除索引文件名。在索引打开时,更新可维护索引。设置Inde
14、xName属性可以激活一个索引。调用Delete或Clear方法删除索引文件名时,该组件将关闭这些索引文件,并不再保持更新。IndexName属性 该属性为字符串型,用来对该组件指定辅助索引。若没有给IndexName属性赋值,则使用数据表的主索引。对dBASE数据库,索引必须在数据表的主索引文件中。主索引文件是由TableName属性确定的,其后缀为.MDX。,MasterFields属性 该属性为字符串型,用来指定由MasterSource属性确定的主数据表与明细数据表连接的字段。该属性中可包含一个或多个两个要连接的数据表字段名,字段名之间用字段号分开。每次主数据表中的当前记录发生变化,这
15、些字段中的值相对于明细数据表中用于显示的记录就被选定。在设计时,使用字段连接设计器来设置该属性。MasterSource属性 当将明细数据表与主数据表连接时,使用该属性指定DataSource(该组件将从主数据表获取数据的数据源)。,ReadOnly属性 该属性为布尔型,用于防止用户修改数据表中的数据。注意:在修改ReadOnly属性前,设置Active属性为False。SessionName属性 该属性为字符串型,用来唯一地识别该数据集要使用的会话组件。支持的SessionName必须与一些建立的Session组件的SessionName或空的字符串(默认的会话)相匹配。在需要时,数据集打开
16、会话,自动获得所有设置会话的属性。,TableName属性 TableName属性为该组件连接的数据库表的名称。注意:要改变该属性必须关闭该组件。TableType属性 TableType属性指定数据库表的类型。对SQL表不适用。若TableType属性设置为Default,则文件名的后缀确定数据表的类型:.DB或没有后缀:Paradox数据表.DBF:dBASE数据表.TXT:ASCII数据表,若TableType的值不是Default,则数据表总是具有该属性指定的类型,与文件的后缀无关:ttASCII:文本文件 ttDBase:dBASE数据表ttFoxPro:FoxPro数据表 ttPa
17、radox:Paradox数据表,UpdateMode属性 UpdateMode属性确定在SQL数据库更新记录时,Delphi如何查找记录。该属性对于多用户环境是相当重要的(可避免冲突)。当用户要更新时,Delphi使用记录中的原始值去查找数据库中的记录。UpdateMode属性指定Delphi用于查找记录的字段。在SQL术语中,UpdateMode属性指定哪一字段包含在UPDATE语句的WHERE子句中。若Delphi不能找到指定字段中的原始值(若其它用户做了修改),则不做更新,产生意外处理。,2.Table组件的事件 Table组件有关数据表操作的事件有:AfterCancel、After
18、Post、BeforeOpen、AfterClose、BeforeCancel、BeforePost、AfterDelete、BeforeClose、OnCalcFields、AfterEdit、BeforeDelete、OnNewRecord、AfterInsert、BeforeEdit、AfterOpen、BeforeInsert等。,9.4.2 Database组件 Database组件在BDE页标签上。Database组件对数据库的存取是不需要的,但它提供对客户/服务器应用程序是重要的附加控制因素。当应用程序登录到一个远程服务器上的数据库时,可用该组件来建立程序和数据库的永久连接。Da
19、tabaseName是数据集组件连接的数据库名。换句话来说,这是由该组件定义的本地别名,并显示在数据集组件中的DatabaseName下拉列表中。,AliasName是用BDE配置程序定义的BDE别名。它是数据库组件获取默认参数设置的地方。若设置DriverName属性,则清除该属性。Params属性中包含有别名的连接参数。DriverName为BDE驱动程序的名字,如STANDARD(用于dBASE及Paradox)、ORACLE、SYBASE、INFORMIX或INTERBASE。若设置AliasName属性(指定驱动程序的类型),则清除该属性。,DataSets属性是引用该组件中激活数据
20、集的数组;DatasetCount属性指定激活数据集的数量。设置Connected属性打开或关闭数据库;设置KeepConnection为True可以避免在每次打开数据库时登录到服务器上;设置LoginPrompt为True,当登录到数据库服务器上时,总是提示用户名和口令。Database组件可以控制服务器的事务,调用StartTransaction方法开始事务、RollBack放弃事务、或Commit立即修改;TransIsolation属性指定服务器上请求事务的隔离级。,1.Database组件的属性 AliasName属性 AliasName属性为在BDE配置程序中定义的BDE别名。是D
21、atabase组件获取默认参数设置的地方。当设置DriverName属性时,就清除该属性。Connected属性 该属性为布尔型,它表示该组件是否建立与数据库的连接。当应用程序打开数据库中的数据表时(若必要时,登录到服务器上),Connected将设置为True;当关闭数据表时(除非KeepConnection为True),该属性设置为False。将Connected设置为True,可在不打开数据表的情况下建立数据库的连接;设置为False将关闭连接。,DatabaseName属性 设置DatabaseName属性可以定义应用程序指定的别名,数据库组件可引用这一别名来替换BDE别名、路径、或数
22、据名。换句话说,这里定义的别名将显示在Table、Query及StoredProc组件的数据库名的下拉列表中。若要设置Connected为True的数据库组件的DatabaseName属性,则出现意外。,DriverName属性 DriverName属性为BDE驱动程序的名字,如STANDARD(用于dBASE及Paradox)、ORACLE、SYBASE、NFORMIX或INTERBASE。若设置AliasName属性(指定驱动程序的类型),则清除该属性的值。相反,设置该属性也将清除AliasName属性。若要设置Connected为True的数据库组件的DriverName属性,则出现意外
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用程序
链接地址:https://www.31ppt.com/p-6050194.html