其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[4]


发布日期:2018年01月23日
 
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[4]

基于数据库表的有效性验证

在用户创建数据库表时就建立有效性验证机制如在使用DBD创建一个表时我们可以为创建的数据库表说明一些验证手段包括字段的最大值最小值图形字段的显示格式等等在设定这些有效性验证机制时不需要编写任何程序代码基于数据库表的有效性验证是当数据写到数据库之前由数据库本身来执行Delphi也执行一些有效性验证如在数据写到数据库之前Delphi会验证每一个字段是否被填入相应的值有关这种途径来验证数据的有效性的详细情况请参考DBD的使用

基于字段的有效性验证

一般有两种方法来进行这种方式的有效性验证

①为记录中需要设置有效性验证的字段编写Onvalidate事件处理过程这样每当该字段的值被修改时该字段的OnValidate事件处理过程就会被调用进而对被修改的字段值进行验证

②对于记录中要求非空的字段(如口令或关键字等)我们必须首先设置这些字段的Required属性为True然后为这些字段编写OnValidate事件处理过程这样在修改现存记录或插入新记录时在写入数据库之前如果要求非空的字段中没有填入适当的字段值那么会出现错误信息提示用户必须输入字段值

基于记录的有效性验证

这种验证方式一般在TTable部件的BeforePost事件处理过程中进行处理即在记录写回到数据库之前对记录的每个字段值进行有效性验证

在程序中对字段值的有效性进行验证

创建一个用TEdit部件浏览ORDERSDB表的应用如图所示

修改TDataSource部件的AutoEdit属性为True

双击TTable部件打开字段编辑器Fields Editor并单击SaleDate字段

在Object Inspector中双击SaleDate字段对象的OnValidate事件为该字段对象编写事件处理过程如下

TFormTableSaleDateValidate(Sender:TField)

begin

If SaleDateValue>Now then

raise ExceptionCreate(不能输入一个未来的日期

end;

当这个应用程序运行时用户修改或插入ORDERSDB中的记录时该应用程序会对销售日期(SaleDate)字段的值进行验证该字段值不能晚于系统的当前日期程序中调用Now方法获得系统的当前日期如果字段值大于系统的当前日期会出现一错误信息提示框告知用户不能输入一个未来的日期

使用TDBComBox部件和TDBLookupComBox部件来限制用户输入字段值的范围

创建查看ordersdb表的应用窗体中显示Terms 字段的是TDBComBox部件显示EmpNo字段的是TDBLookupComBox部件

TDBComBox和TDBLookupComBox部件的属性值如表所示

窗体中各部件的属性设置

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

部 件 属 性 属 性 值

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

DataField Terms

DBComBox DataSource DataSource

Items Prepaid

Net

COD

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

DataField EmpNo

DataSource DataSource

DBLookupComBox LookupSource DataSource

KeyField EmpNo

LookupField EmpNo

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

DataSource DataSet Table

AutoEdit True

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

DataSource DataSet Table

AutoEdit True

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

Table DatabaseName DemosDB

TableName ordersdb

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

Table DatabaseName DemosDB

TableName ordersdb

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

该应用运行时当用户修改和插入记录到ORDERSDB表中时Terms字段的值可以从组合框中的PrepaidNetCOD三个值中任选EmpNo字段的值是从另一个表Employee中获得的雇员号码用户可以从中选择

返回目录DELPHI基础教程

编辑推荐

Java程序设计培训视频教程

JEE高级框架实战培训视频教程

Visual C++音频/视频技术开发与实战

Oracle索引技术

ORACLEG数据库开发优化指南

Java程序性能优化让你的Java程序更快更稳定

C嵌入式编程设计模式

Android游戏开发实践指南

[] [] [] []

               

上一篇:DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[1]

下一篇:DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[3]