2.1 VFP表的建立
表是由行和列组成的二维表格,它是处理数据和建立关系数据库及其应用程序的基本单元。表分为自由表和数据库表。自由表是独立于数据库而存在的一种表,而数据库表是包含在数据库中的表。
表主要由结构和记录两部分组成,结构可以理解为表的框架,记录即为表中的数据。
2.1.1 分析和设计表结构
1.表结构的分析
Visual FoxPro中使用的数据表与我们日常使用的二维表相似,如表2.1所示。
表2.1 Teacher表
这张表反映了教师的基本信息,由“姓名”、“性别”、“出生年月”等9列组成,其中每一列表示一种不可再分的基本属性,称为字段。而其中的标题,如“姓名”表示属性的名称,叫字段名;其中的内容,比如“张三”是字段的值,表示不同教师的时候,字段“姓名”可以有不同的值。但同一列数据必须使用相同的数据表示方法,也就是数据类型,比如“姓名”是字符型,“婚否”是逻辑型,给字段定义数据类型是为了更好地处理数据。当然还要给字段值预留足够的存储空间,也就是定义字段的宽度。字段的名称、类型、宽度等构成表的框架,即结构。
表的每一行表示某个教师的基本情况,称为一条“记录”。记录是表的核心内容。
表的建立分两步,第一步定义表结构,第二步输入数据。定义表结构就是定义各个字段的属性,包括字段的个数以及每个字段的名称、类型、宽度等。
字段名:字段名即关系的属性名或表的列名。自由表字段名最长为10个字符,数据库表字段名最长可为128个字符。字段名以字母或汉字开头,由字母、汉字、数字、下画线组成。
字段类型:每个字段都有特定的数据类型,当其定义了相应的数据类型后,数据如何存储、使用也被相应地定义了。
宽度和小数位:字段的宽度规定了字段值可以容纳的最大字节数。数值型字段除需要定义字段的总宽度外,还需要定义小数位。
2.表结构的设计
在VFP系统中,一张二维表对应一个数据表,称为表文件,其扩展名为.DBF。一张二维表由表名、表头、表的内容三部分组成,一个数据表有表文件的文件名、结构、记录三个要素。
表文件的文件名是表文件的主要标志,我们依靠表文件名建立、使用指定的表文件。定义表结构就是定义数据表字段的个数、字段名、字段类型、字段宽度等。表的记录是表文件中的基本数据,也是VFP进行数据处理的对象。
下面以表2.1为例介绍表结构的设计。
在定义表结构时,首先应熟悉事务处理的工作流程,明确事务处理的目的、所需的原始数据和相关数据,然后确定所需要的数据表,每个表中所含字段、各个字段的类型、宽度等。比如教师表中要包含有关教师的基本信息,即姓名、性别、出生日期、简历等。字段的名称应反映字段的基本属性。
“姓名”字段定义为字符型,长度定义为6字节(1个汉字占2字节)。
“性别”字段定义为字符型,长度定义为2字节。
“出生年月”字段定义为日期型,固定长度为8字节。
“婚否”字段只有两种状态,可以定义为逻辑型,如果人为规定“已婚”用“.T.”表示,那么“未婚”的值就是“.F.”,固定长度为1字节。
“教研室”字段定义为字符型,宽度定义为6字节。
“职称”字段定义为字符型,宽度定义为6字节。
“月收入”字段定义为数值型,考虑小数点也占1字节,宽度定义为7字节。
“简历”字段存放字符较多,是不定长的文本,定义为备注型,固定长度为4字节。
“照片”字段存放图片,属多媒体信息,定义为通用型,固定长度为4字节。
表teacher.dbf的结构如下:
2.1.2 建立表结构
用户可在菜单、命令等方式下,利用“表设计器”对话框创建表结构。
1.菜单方式
在菜单方式下打开“表设计器”的方式如下:
(1)打开“文件”菜单,选择“新建”命令,弹出“新建”对话框,如图2.1所示。
(2)在“新建”对话框中,选中“表”单选按钮,单击“新建”按钮,弹出“创建”对话框,如图2.2所示。
图2.1 “新建”对话框
图2.2 “创建”对话框
(3)在“创建”对话框中,选定目录,输入表名,然后单击“保存”按钮,弹出“表设计器”对话框,如图2.3所示。
图2.3 “表设计器”对话框
2.命令方式
【命令格式】 CREATE <表文件名>/?
【功能】 打开“表设计器”对话框,创建一个新表结构。
【说明】 执行该命令时,默认在当前目录中创建表结构,若在命令中使用“?”参数,则打开一个“创建”对话框,提示用户输入表文件名。
3.项目方式
利用项目方式创建表结构的操作步骤如下:
(1)打开“文件”菜单,选择“新建”命令,弹出如图2.1所示的“新建”对话框。
(2)在“新建”对话框中,选中“项目”单选按钮,单击“新建”按钮,弹出“创建”对话框。
(3)在“创建”对话框中,输入项目名,单击“保存”按钮,打开“项目管理器”窗口。
(4)在“项目管理器”窗口打开“数据”选项卡,选择“自由表”,然后单击“新建”按钮,弹出“新建表”对话框。
(5)在“新建表”对话框中,单击“新建表”按钮,弹出“创建”对话框。
(6)在“创建”对话框中,选定目录,输入表名,然后单击“保存”按钮,弹出“表设计器”对话框。
用上述三种方法均可打开“表设计器”对话框,然后逐一定义表中各个字段的名称、类型、宽度等内容。“表设计器”包括“字段”、“索引”、“表”三张选项卡。
(1)“字段”选项卡:定义各字段的字段名、类型、宽度及小数位数等内容。
字段名:定义字段的名称。自由表的一个字段名最多为10个字符,数据库表的一个字段名最多为128个字符。
类型:定义字段中存放数据的类型。单击下拉箭头,从中选择一种数据类型。
宽度:表示字段允许存放的最大字节数或数值位数。
小数位数:指定小数点右边的数字位数。
索引:指定字段的普通索引,用以对数据进行排序。
NULL:指定是否允许字段接受NULL(空)值。空值是指不确定的值,它与空字符串、数值0等是不同的。一个字段是否允许为空值与字段的性质有关。例如,关键字的字段不允许设置为空值。
“字段”选项卡右边的“显示”、“字段有效性”等是有关数据库之数据字典的设置,只适用于数据库表,在自由表中这些功能暂时不可用。
(2)“索引”选项卡:用于定义索引。
(3)“表”选项卡:显示有关表的信息,用于指定有效规则和设置触发器。
【例2.1】 使用菜单方式建立如表2.1所示的教师表结构,表文件名为:teacher.dbf。
操作步骤如下:
(1)打开“文件”菜单,选择“新建”命令,弹出“新建”对话框。
(2)在“新建”对话框中,选中“表”单选按钮,单击“新建”按钮,弹出“创建”对话框。
(3)在“创建”对话框中,不改变“Visual FoxPro项目”默认目录,输入表名“teacher”,然后单击“保存”按钮,弹出“表设计器”对话框。
(4)在“表设计器”对话框中,打开“字段”选项卡,然后依次输入字段的字段名、类型、宽度及小数位数等内容。
单击NULL列出现√符号时,表示该字段可以接受空值。向上或向下拖动“字段名”左侧的双箭头按钮,可以改变字段的次序。单击“删除”按钮,可删除字段;单击“插入”按钮,可增加字段。
(5)当表中所有字段定义完成后,单击“确定”按钮,则关闭“表设计器”对话框,建立表结构结束,此时表“teacher.dbf”中没有任何记录,只有表结构。
2.1.3 表数据的录入
数据表结构建立之后,需要向表中输入数据,在VFP中,有多种数据录入方式。在“浏览”方式下给表中追加记录的操作步骤如下:
(1)打开表。
(2)打开“显示”菜单,选择“浏览”命令,打开表“浏览”窗口。此时的表是一空表,只显示表中的字段名。
(3)第二次打开“显示”菜单,选择“追加方式”命令,在当前表尾部追加记录。
(4)在表“浏览”窗口输入数据。
为了提高录入速度和准确性,应注意以下事项。
如果输入的数据宽度等于字段宽度,则光标自动跳到下一个字段;如果输入的数据宽度小于字段宽度,则需按Enter键或Tab键跳到下一个字段。
对于有小数的数值型字段,如果输入整数部分宽度等于所定义的宽度,则光标自动跳到小数部分;如果输入整数部分宽度小于所定义的宽度,则按键盘右箭头跳到小数部分。
日期型字段的两个分隔符“/”由系统给出,不需要用户输入,可按美国日期格式MM/DD/YY输入日期。如果输入非法日期,则会提示出错信息。
逻辑型字段只能接受T,Y,F,N这四个字母之一(不区分大小写)。如果在此字段中不输入值,则默认为F。
输入记录的最后一个字段的值后,按Enter键,光标自动定位到下一个记录的第一个字段。
备注型和通用型字段的赋值比较复杂,下面举例说明。
【例2.2】 给表teacher.dbf中第一个记录的备注型字段输入“大学毕业”。
操作步骤如下:
(1)打开表teacher.dbf。
(2)打开“显示”菜单,选择“浏览”命令,打开表“浏览”窗口。
(3)双击第一个记录的备注型字段memo标志区(或单击memo标志区后按Ctrl+PgDn组合键),打开备注型字段编辑窗口,输入“大学毕业”,如图2.4所示。
图2.4 备注型数据的输入
(4)输入完毕,单击“关闭”按钮(或按Ctrl+W组合键),关闭备注型字段编辑窗口,保存数据。此时备注型字段显示为Memo(第一个字母大写)。如果要放弃本次的输入或修改操作,则按Esc键或Ctrl+Q组合键。
【例2.3】 将照片插入到表teacher.dbf的第一个记录的通用型字段中。
操作步骤如下:
(1)打开表teacher.dbf。
(2)打开“显示”菜单,选择“浏览”命令,打开表“浏览”窗口。
(3)双击第一个记录的通用型字段gen标志区(或单击gen标志区后按Ctrl+PgDn组合键),打开通用型字段编辑窗口。
(4)打开“编辑”菜单,选择“插入对象”命令,弹出“插入对象”对话框,选中“由文件创建”单选按钮,单击“浏览”按钮,选择相应的位图文件,如图2.5所示。
图2.5 “插入对象”对话框
(5)单击“插入对象”对话框中的“确定”按钮,图像出现在通用型字段编辑窗口,如图2.6所示。
(6)单击关闭按钮(或按Ctrl+W组合键),关闭通用型字段编辑窗口,保存图像。此时通用型字段显示为Gen(第1个字母大写)。
图2.6 插入图片