您的位置: 网站首页 > 程序开发 > Visaul FoxPro程序设计 > 第3章 数据库的基本操作 > 【3.4 定义表的字段及属性】

3.4 定义表的字段及属性

 

3.4  定义表的字段及属性

将表添加到数据库后,便可以获得许多在自由表中得不到的属性,这些属性作为数据库的一部分保存在数据库的数据字典中,并且一直为表所用。定义数据库中表的属性,是通过表设计器来完成的。

3.4.1  为数据库表设置长表名

当将自由表添加到数据库之后,Visual FoxPro允许使用长达128个字符的长字段名,这使得字段名更清楚,更具有说明性。长字段名被存储在*.dbc文件的一个记录中,它的前10个字符同时还作为字段名保存在*.dbf文件中。

注意:在给数据库中的表设置长表名时,其长表名可以包含字母、数字、下划线或汉字,但是首字符必须是字母、下划线或汉字。在长表名里不能使用空格。

例如,在打开的数据库“影碟管理”中,设置“影碟资料”数据表的长表时,其操作步骤如下:

1)选择“文件”“打开”命令,将弹出“打开”对话框,选择“VCD”数据库文件,如图3-14所示。

3-14  选择要打开的数据库文件

2)单击“确定”按钮,将打开“数据库设计器”窗口,同时将显示其中的数据表文件。选择“customer”数据表并右击,在弹出的快捷菜单中选择“修改”命令,如图3-15所示。

3-15  选择“修改”命令

3)在打开的“表设计器”对话框中,单击“表”选项卡,然后在“表名”文本框中输入需要设置的长表名,如图3-16所示。

3-16  “表设计器”对话框

4)设置完成后,单击“确定”按钮,则在“数据库设计器”窗口中即可看到设置的长表名,如图3-17所示。

3-17  设置的长表名

3.4.2  设置字段标题

当用户浏览或编辑表时,默认情况下将字段名作为标题显示,但这样的显示效果往往可读性较差,因此可以通过表设计器来设置字段的标题。

例如,要对如图3-17所示中的“filmdata.dbf”表文件设置其字段标题,其操作步骤如下:

1)在图3-17中,右击“filmdata.dbf”表,在弹出的快捷菜单中选择“修改”命令,此时将打开“表设计器”对话框。

2)在“字段”选项卡中选择需要设置标题的字段(如“vcd_no”),然后在“标题”文本框中输入标题名称(如“影片编号”),如图3-18所示。

3)依次对其他字段的标题进行设置,完成后单击“确定”按钮即可。此时浏览该数据表,即可看到该数据表的标题已经是被设置过的标题名了,如图3-19所示。

3-18  设置字段标题

3-19  字段标题效果

3.4.3  设置字段格式

“格式”用来指定字段在浏览窗口、表单或报表中显示数据的格式。它要求字段中的数据按特定的格式来显示,或者要求用户按特定格式在字段中输入数据,这在表操作中是经常而且必要的操作。

如果希望“电话号码”字段的区号能显示在小括号中,例如,(08182398300——可以在“格式”文本框中输入一个或多个格式化代码,也就是使用单个或多个格式代码的组合来完成所需要的格式化设置。

3-2列出了适用于Format属性的格式化代码。

3-2  Format属性的格式化代码

代码

功能用途

A

只允许英文字母,且不允许空格与标点符号

D

依照目前SET DATA命令所定的格式来编辑与显示日期时间类型数据

E

依照BRITISH格式来编辑与显示日期及时间类型数据

K

当光标在此字段时,便选取整个字段以便进行编辑

L

0补满前置空白,只能使用于数值类型字段

R

借助此一格式代码,可让非格式化代码的格式化字符与格式化代码合并使用;一旦在“格式”属性中指定格式代码R,则那些出现在“输入掩码”属性中的非格式化代码将会显示在字段中以作为格式化字符之用;这些用以在显示时格式化数据的非格式化代码的格式化字符并不会存入字段中;格式化代码R仅适用于字符类型与数值类型字段,而且也只适用于TextBox控件

续上表

代码

功能用途

T

删除字段的前置空白与结尾空白

YS

表示采用在“控制面板”的“国家”设置工具中所设置的简短日期格式来显示日期值或日期时间值

YL

表示采用在“控制面板”的“国家”设置工具中所设置的完整日期格式来显示日期值或日期时间值

Z

表示如果字段的内容为数值0,则将它显示成空白;此格式化代码只能适用于数值类型字段

表示可输入任意字符,但所有输入的英文字母都会被转换成大写;此格式化代码仅适用于字符类型字段

^

表示将数值数据以科学符号表示;此格式化代码只能适用于数值类型字段

$

表示将数值数据以货币格式显示;至于货币符号$是显示在数据值的前面还是后面,则由SET CURRENCY命令决定,当执行SET CURRENCY LEFT后,则将货币符号$显示在输出数值的前面(默认);反之,如果执行SET CURRENCY RIGHT,则将货币符号$显示在输出数值的后面

M

此格式化代码能够让用户指定一些可直接选用的选项,这些选项存储在“输入掩码”属性中并以逗号(,)分隔;在使用格式化代码M时必须注意下列几点:这些选项本身不能再包含逗号;用户本身不能在字段中输入数据,而只能用空格键切换选择预先设置的项目;如果字段中的数据值并未包含在所预定的选项中,则第一个选项将会出现在字段中;格式化代码R仅适用于字符类型字段,而且也只适用于TextBox控件

例如,针对“filmdata.dbf”数据表来说,如果将“vcd_no”字段中的英文字符全部设置为大写形式,只需在“表设计器”的“字段”选项卡中选择“字段名”,然后在“格式”文本框中输入“!”即可,如图3-20所示。

3-20  设置字段格式

3.4.4  设置字段掩码

“输入掩码(Input Mask)”是指定字段的值必须遵守的标点、空格和其他格式的要求。“输入掩码”是字段或者控件的一种属性,用以限制或控制用户输入数据的格式。与“格式”相同,“输入掩码”属性也对应着各种格式化代码,见表3-3

3-3  “输入掩码”属性的各种格式化代码

代码

功能用途

A

表示只能输入英文字母

L

表示只能输入英文字母FT

N

表示只能输入英文字母和数字

X

表示允许输入任何字符

Y

表示只能输入英文字母YyNn,它会自动将小写的yn转换成大写

9

表示只能输入字符数据的数字或数值数据的数字

$

表示将数值数据以货币格式显示;货币符号$将固定显示于数据值最前方的第一个位置上,且不受SET CURRENCY命令的影响;此格式化代码仅适用于数字类型字段

$$

表示将数值数据以货币格式显示,货币符号$将固定显示于数据值的最前面,并且将紧邻着数字

*

表示在数值数据之前会显示数个星号(*),可以与符号$合用以便达到与支票保护类似的工作,即防止数据被篡改

.

表示指定小数点位置

,

表示用来分隔小数点左边的数字(如每三位数字一个逗号的金额表示方式)

!

表示可输入任意字符,但所有输入的英文字母都会被转换成大写

#

表示只能输入数字、空白、正负号和英文的句号(.

若要将“customer.dbf”表中“tel_2”字段的格式设置为“(099999-9999,只需在“输入掩码”文本框中输入“(099999-9999即可,如图3-21所示。

3-21  设置字段掩码

这样设置后,在添加记录时,将在“电话(宅)”字段处自动显示该掩码形式,只输入数字电话号码即可,而不需要输入相关的格式信息,如0和括号等,如图3-22所示。

3-22  添加新记录

注意:“输入掩码”和“格式”两个显示设置项完成的功能基本是相同的。但也有区别,“输入掩码”属性搭配格式化代码后,可以完成对当前字段值中的字符进行一对一格式化控制;而“格式”属性搭配格式化代码后,所做的却是对当前字段值的全局性格式化控制。

3.4.5  设置字段有效性规则

“字段有效性”设置是对字段约束的设计,包括规则、信息和默认值。

1.规则

所谓规则,主要是指用来设置字段数据输入的规则,防止输入非法资料。存储在字段中的数据值一般需要符合某种特定的要求,例如,输入学生的身高与体重字段的数字绝对不可能小于0,年龄字段的内容必须都在一定范围等。

所谓验证规则,就是用来检验用户输入至字段中的数据是否满足特定的条件。一旦字段定义了验证规则,如果输入了不符合验证规则的数据,系统将显示默认的出错信息,并要求单击“还原”按钮重新输入数据,直至输入符合要求的数据为止。验证规则可以是一个表达式,也可以调用程序、用户自定义函数或过程。

例如,在“filmdata.dbf”数据表的“vcd_no”字段中,如果不允许该字段为空,则在“表设计器”对话框的“规则”文本框中输入“.NOT.EMPTY(vip_no)”信息即可,如图3-23所示。如果在输入记录时,没有在该字段输入数据,则系统提示出相应的错误信息。

3-23  设置字段的规则

注意:字段规则的设置建议使用表达式生成器来完成,这样可以保证表达式语法的正确性。

2.信息

在“信息”文本框中输入相应的提示信息后,如果输入的数据不符合验证规则,则系统会显示相应的出错信息。默认的出错信息只会提示用户输入的值违反了字段的验证规则,却不会提示用户怎样输入正确值,如图3-24所示。

3-24  默认的出错信息提示框

注意:一般在程序开发时,在设置验证规则的同时最好一同设置出错信息。

例如,在图3-23中,应在“信息”文本框中输入“会员编号请务必输入”,当输入“vcd_no”字段的数据时,如果没有输入正确的数据信息,系统将自动提示设置的出错信息,如图3-25所示。

3-25  设置的出错信息提示框

3.默认值

所谓默认值,就是向数据库表中添加新记录时,为字段指定的、预先制定好的数值或字符串。无论是在表单、浏览窗口或是在其他视图中输入数据,还是以编程方式输入数据,默认值都一直起作用,并一直存在字段中,直到输入新值为止。在添加新记录时,为了让系统自动为某个字段填入相应的数据信息,可以为该字段设置默认值。

注意:所设置默认值的类型必须与该字段的数据类型相同。如果为字符类型字段设置默认值,则必须将所输入的默认值包含在一对引号中;如果为日期或日期时间类型设置默认值,则必须将所输入的默认值包含在一对花括号中。另外,字段的默认值不可与验证规则相违背。

例如,要为“学生档案表”(xsda.dbf)表中的“年龄”字段设置默认值为22,在“表设计器”中选择该字段后,在“默认值”文本框中输入“22”即可。