Delphi简单数据库应用的创建及MASTAPP介绍

Delphi中嵌入的数据库应用开发工具如Database Form Expert具有很强大的功能,我们不需要编写任何程序代码便可以快速地创建一个简单的数据库应用程序,甚至还能创建基于多个数据库表的主要──明细型数据库应用程序。

本章主要介绍用Delphi开发简单的数据库应用程序的一般方法和步骤,首先让读者对Delphi强劲的数据库应用开发工具有一个直观的印象,然后在此基础上进行复杂的数据库应用程序的设计,本章主要包括以下内容:

● 创建数据库应用窗体

包括用Database Form Expert 或手工方式创建简单的无需编写程序代码的应用程序或者利用多个部件并编写功能复杂的程序代码创建主要──明细型数据库应用程序。

● 在应用程序中控制字段有关的属性

描述怎样读写数据库表中字段的值和控制字段的显示格式等。

本章所介绍的例子中用到的窗体、数据库表以及相关的文件都是在安装Delphi时缺省安装在C:\DELPHI\DEMOS\DB\MASTAPP目录中,并且用别名DBDEMOS表示这一子目录。在本章例子中,除特殊声明外,所有的TTable和 TQuery 部件的 DatabaseName 属性都设置为DBDEMOS。

14.1 简单的基于单表的据库应用 

用Decphi创建显示一个数据库表中的内容的应用非常简单和方便,只需要三个部件,只要将这三个部件通过相关的属性相互联系起来,不需要编写任何程序代码便可以实现。例如,用户想查看数据库表Customer.DB中的内容时,可以按下面步骤来实现: 

14.1.1 选择相关的部件: 

选择菜单Project/New开始一个新工程,并修改Form1的Caption属性为CustomerFrom1并把Name属性设置为CustomerForm1,然后从部件选择板上的Data Access 页上选取一个Datasounce部件和一个Table部件放到窗体的左上角,它们是非可见的部件,在窗体中我们看到的只是部件的图标;从Data Control页上选取DBGrid部件放到窗体中前两个部件的下面。完成这些工作之后,窗体如图14.1所示。  

图在CustomerFrom1窗体中放置三个部件 

14.1.2 设置部件的属性 

为了使TDBGrid部件能够显示数据库表Customer.DB中的客户信息,我们必须修改窗体三个部件相关的属性,这些属性的设置如表14.1所示。 

表14.1 CustomerFrom1窗体中三个部件的属性设置

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

属 性 属 性 值

──────────────────────────────

DataSource1.AutoEdit False

DataSource1.DataSet Table1

Table1.DatabaseName DBDEMOS

Table1.TableName CUSTOMER.DB

Table1.Active True

DBGrid1.DataSource DataSource1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

这里要注意的是:DBDEMOS是Delphi缺省安装时C:\Delphi\DEMO\DB\MASTAPP目录的别名,而且数据库表Customer.DB存在该目录下,用户在使用这一例子时,请注意这两项设置都是正确的。另外 Datasource1.Dataset,Table1.TableName和DBGrid1.Datasource属性都有下拉式列表框允许用户从可能的值列表中选择它们的值,这样能方便我们进行属性的设置,而且不容易出错。

Datasouuce1.AutoEdit属性设置为False是为了防止用户修改数据库表中的数据,在下面的讨论中我们将详细地进行说明。

Table1.Active设置为True时,Delphi会打开Table1.TableName所指定的数据库表。如果这个数据库表不存在(或表中什么也没有,即空表), Delphi 会弹出出错信息并且Table1.Active变成False。当Table1.Active被设置成True之后,Table1 部件的一些属性就不能再修改了,如Table1.DatabaseName和Table1.Tablename属性。若要修改它们,必须首先要将Table1.Active属性设置为False,然后再进行修改,否则,Delphi会弹出错误信息“Cannot perform this operation on an open database”。当看到这个错误信息时,只需把Table1.Active置成False,完成相关的修改后,再把 Table1. Active 属性设置为True。

当我们把DBGrid1.DataSource的值设置成DataSource1时,Delphi会把Customer.DB中的数据填充到DBGrid1部件中,并且可以用DBGrid1中的滚动条来浏览数据库表中的所有记录。

时间: 2024-10-26 18:41:24

Delphi简单数据库应用的创建及MASTAPP介绍的相关文章

第十四章-简单数据库应用的创建及MASTAPP介绍(一)(3)

14.3 创建主要──明细数据库应用 我们前面在介绍的基于单个数据库表的数据库应用程序只能对数据库表进行简单的管理,大多数只用来浏览单个数据库表中的记录信息,如果我们想浏览多个相关的数据库表中的记录信息,就必须要创建主要──明细型数据库应用程序. 在主要──明细型数据库应用程序中,一个数据库表作为主要表,其中存放着综合信息,其他的数据库表和主要数据库表相关联,它们当中存放着更详细的信息.例如,当数据库表Customer.DB作为主表,它包含着客户的综合信息如编号.姓名.所在公司的名称等等.而数据

第十四章-简单数据库应用的创建及MASTAPP介绍(一)(1)

Delphi中嵌入的数据库应用开发工具如Database Form Expert具有很强大的功能,我们不需要编写任何程序代码便可以快速地创建一个简单的数据库应用程序,甚至还能创建基于多个数据库表的主要──明细型数据库应用程序. 本章主要介绍用Delphi开发简单的数据库应用程序的一般方法和步骤,首先让读者对Delphi强劲的数据库应用开发工具有一个直观的印象,然后在此基础上进行复杂的数据库应用程序的设计,本章主要包括以下内容: ● 创建数据库应用窗体 包括用Database Form Exper

第十四章-简单数据库应用的创建及MASTAPP介绍(三)(3)

14.7 插入和删除记录 虽然我们使用DBD或者在应用程序窗体中用TDBNavigator可以插入.删除表中的记录,但是任何重要的数据库应用程序都是根据最终用户的命令完成此类操作的.同样,如果我们掌握了字段对象及其用法,修改数据库中的记录,插入和删除记录将变得非常容易. 要想删除表中的某一条记录,首先将记录指针移到该记录处,然后调用delete方法,这样,当前指针所在的记录就会被删除,而且我们在进行删除操作时,不必将TTable部件设置成编辑状态.当前指针所在的记录被删除之后,被删除记录下面的所

第十四章-简单数据库应用的创建及MASTAPP介绍(二)(4)

14.5.1 使用GotoKey方法查找数据记录 使用Gotokey方法查询数据库中的记录的具体步骤如下: 1.确保要查找的字段是关键字或已经为它定义了辅助索引,并保证TTable部件的属性列表中有关键字段名或辅助索引名. 2.通过调用GotoKey方法,把要查找的TTable部件置成查找模式. 3.把查找值送进被查找的Field的查找缓冲区. 4.调用TTable部件的GotoKey方法,并测试它的返回值判断查找是否成功. 如果查找成功,GotoKey返回一个True值,并且表中的记录指针指向

第十四章-简单数据库应用的创建及MASTAPP介绍(三)(4)

14.8 输入数据的有效性验证 当用户向一个数据库表中插入新记录或修改原有记录时,我们必须确保用户输入的数据是有效的,为此Delphi通过三种不同的途径用来验证用户输入的数据是否有效. 这三种途径是:基于数据库表的有效性验证.基于字段的有效性验证.基于记录的有效性验证. 基于数据库表的有效性验证: 在用户创建数据库表时就建立有效性验证机制,如在使用DBD创建一个表时,我们可以为创建的数据库表说明一些验证手段,包括字段的最大值,最小值,图形字段的显示格式等等.在设定这些有效性验证机制时,不需要编写

第十四章-简单数据库应用的创建及MASTAPP介绍(二)(3)

14.4.5 设定字段对象的显示格式 我们即可以在设计阶段设定字段对象的显示格式,也可以在运行过程中通过程序代码来设定字段对象的显示格式. 例14.2 在如图14.10所示的窗体中,再增加一个TaxRate字段,并在程序设计过程中设定它的显示格式为0.00%,即设置TaxRate字段对象的DisplayFormat属性为0.00% , 若TaxRate的值为0.085那么在网格部件中其显示的格式为8.50%. 在运行过程中我们通过程序代码来设定字段Phone的显示格式,美国的电话表示形式与中国的

第十四章-简单数据库应用的创建及MASTAPP介绍(二)(2)

14.4.4 字段对象的访问 字段对象在应用程序中有动态生成的,也有通过字段编辑器Fields Editor 创建的永久性的,它们虽然在设计和运行阶段都是不可见,但是它们跟其他的对象一样都拥有自己的属性.方法和事件,因此我们在应用程序中是可以对字段对象进行控制和访问的. 因为动态字段对象是没有自己的名字的,永久性的字段对象有自己的名字,所以对这两种字段对象的访问方法是不一样的. 14.4.4.1 动态字段对象的访问 动态字段对象存在于数据集部件TTable和TQuery部件中,它们是随着磁盘上的

第十四章-简单数据库应用的创建及MASTAPP介绍(一)(4)

14.4 字段对象的使用 Ttable和TQuery部件中有一个TField类型的属性Fiedls,Fields是TField类型的对象的列表,TField对象列表是Delphi数据库中较难以理解的一个对象,它是 TTable 部件和TQuary部件的一部分,它们是不能够选择到窗体中的独立的部件,而且无论是在设计阶段还是在程序运行过程中,它们都没有可见的图像.即使到Object Inspector窗中察看它们也很困难. Tfield对象是在打开磁盘上的数据库表时动态产生的,并在数据库表被关闭时自

第十四章-简单数据库应用的创建及MASTAPP介绍(一)(2)

14.1.3 运行程序 保存文件,命名代码单元为Cust.pas,命名工程名为CustPRJ.DPR,然后按F9编译并运行程序.程序执行之后,我们可以使用滚动条或键盘移动键在字段和记录间移动.但不能修改表中的数据,因为Datasouc1.AutoEdit1属性已被设置为False. Cust程序中的三个部件都有各自的特殊用途,三个部件的相关属性在内部相互联系生成最终的应用程序.TTable部件连接磁盘上的实际数据库表和应用程序中其他部件的通道.TTable部件具有打开和关闭.读取.更新以及其他处