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

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

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

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

基于字段的有效性验证

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

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

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

基于记录的有效性验证

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

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

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

修改TDataSource部件的AutoEdit属性为True

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

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

TForm Table SaleDateValidate(Sender:TField)

begin

If SaleDate Value>Now then

raise Exception Create( 不能输入一个未来的日期 )

end;

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

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

创建查看orders db表的应用 窗体中显示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 orders db

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

Table DatabaseName DemosDB

TableName orders db

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

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

返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

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

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

Oracle索引技术

ORACLE G数据库开发优化指南

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

C嵌入式编程设计模式

Android游戏开发实践指南

lishixinzhi/Article/program/Delphi/201311/25166

一、 建立数据库

方法一:使用向导,调出方法⑴可采用“文件”菜单“新建”

⑵或采用“工具”菜单“向导”

方法二:使用数据库设计器

1、 使用向导建立数据库

特点:可以方便快捷地创建数据库,但只适用于一般常用的数据库。

2、 使用数据库设计器建立数据库

特点: 最大特点就是灵活性

*** 作步骤:⑴“文件”菜单“新建”,显示新建对话框

⑵选择“数据库”和单击“新建文件”钮

⑶在创建对话框中输入新数据库的名称和单击“保存”钮

效果:数据库文件已经建立完成。

显示出“数据库设计器”窗口和“数据库设计工具”

打开“数据库设计器”工具方法:“显示”菜单“工具栏”

选择“数据库设计器”

随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test

同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限

最后使用DENY语句拒绝了用户账户u_test对表tITles的SELECT权限。

经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs的所有权限。

就是将最经常被访问的数据缓存起来:将应用做成快/慢表机制。让用户很少访问大量的旧数据放在一个慢表里。将用户经常访问的新数据放在一个高速的快表(只有数百数千条记录)里:可以是一个限制数量的小数据库,可以是更简单的非数据结构(DBM/Hash/纯文本)来快速存取

你得有一张表,记录你需要建立表的数据库名称,如果是全部的库,就用系统表masterdbosysdatabases

然后用活动脚本实现

declare @sql nvarchar

set @sql=''

select @sql=@sql+'create table '+name+'dbo表名(字段名 int)

' from masterdbosysdatabases where name not in('tempdb','model','msdb')

exec sp_executesql @sql

以上就是关于DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[4]全部的内容,包括:DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[4]、数据库中怎样创建图表报表、SQL2005数据库,怎么最快速的把dbo.身份创建的表,转成一个新建的角色创建的表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10152315.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存