2.4 浏览与编辑记录
(1)“浏览”方式
在项目管理器窗口“数据”选项卡的“通讯录管理”数据库中选择“通讯录”表,单击“浏览”按钮,打开“浏览”记录窗口。
打开表时如果不是“浏览”方式,可以单击“显示”菜单中的“浏览”命令,从而切换为“浏览”方式。
(2)“编辑”方式
在如图所示的“浏览”窗口中,选择“显示”菜单中的“编辑”命令,可将显示窗口切换为“编辑”方式,如图所示。

在浏览或编辑记录窗口,可以随时对记录进行修改
(3)记录指针的定位
在浏览表时,VFP提供的“转到记录”命令,可以实现记录指针的快速定位。
单击“表”菜单中的“转到记录”命令,出现如图所示的子菜单。各菜单选项的含义如表3。
选项名称 |
作 用 |
选项名称 |
作 用 |
参 数 |
第一个 |
指针移到第一条记录 |
记录号 |
指针移到指定的记录上 |
|
最后一个 |
指针移到最后一条记录 |
定位 |
指针移到符合条件的第一个记录上。选择该贡时出现“定位记录”对话框,如图所示,其中作用范围有四种参数 |
All:表示全部记录 |
下一个 |
指针移到当前记录的下一条记录上 |
|||
前一个 |
指针移到当前记录的前一条记录上 |
设置完毕,单击“定位”按钮,系统立即查找符合条件的第一条记录并把记录指针移到该记录上。
2.5 删除与恢复记录
在VFP中删除记录分为逻辑删除和物理删除两种方式。逻辑删除在要删除的记录前作一个黑色删除标记,它仍存储在表内,需要时可以恢复这些记录。物理删除是将记录真正的删除掉,表中不再保留这些记录,而且删除后不能恢复这些记录。
(1)逻辑删除记录
例6 直接从表中删除“通讯录”表中的部分记录。
操作步骤一:在项目管理器的“数据”选项卡中选择“通讯录”表,单击“浏览”按钮。
操作步骤二:在“浏览”窗口中单击要删除记录左边的空白方框,加一个黑色的删除标记。用此方法可给多条记录加上逻辑删除标记。如图所示。

在表浏览窗口,如果要删除一组记录,或是删除符合条件的多条记录时,可以利用“表”菜单中的“删除记录”命令实现。
(2)恢复删除记录
在表浏览窗口中,用鼠标单击记录的删除标记,取消删除标记,黑色方框消失,则恢复被删除的。要一次恢复删除的一组记录,或者恢复删除符合条件的多条记录时,可以利用“表”菜单中的“恢复记录”命令来实现。
(3)物理删除记录
当带逻辑删除标记的记录不再需要时,可以将这些记录进行物理删除。单击“表”菜单中“彻底删除”命令,则将逻辑记录进行物理删除。通过浏览操作可以观察记录删除的情况。
三、数据表记录的索引操作
3.1记录索引
在数据表中建立索引能够使用户快速查找到需要的记录,根据表中某些字段值建立一个逻辑顺序的索引文件,从而按不同的顺序处理记录。同时,用户也可以根据这些索引创建自定义的表间关系,准确地访问记录。建立一个索引文件时,表中记录的物理存储顺序保持不变,它存储的是根据索引关键字进行逻辑排序的一组记录号。
(1)索引类型
表中用来确定索引顺序的字段,称为关键字字段,也称为索引关键字。
A.主索引? 主索引又称为主关键字,一个表中只能有一个主索引,建立索引的关键字段值不允许重复,它可确保字段中数据的惟一性,同时也决定了表中记录的排列依据。
B.候选索引? 候选索引和主索引一样,要求字段值的惟一性,并决定了处理记录的顺序。候选索引不仅适用于数据库表,也适用于自由表,而且每个表可以建立多个候选索引。
C.普通索引? 普通索引也可以用来作为记录排序的依据,它的最大特点是该字段中的数据不需要惟一,允许字段有重复值。一个表中可以建立多个普通索引。
D.惟一索引? 惟一索引主要为兼容旧版本而设立的。惟一索引用来待定一组记录,并根据指定字段值第一次出现的位置来选择和排列记录。
(2)建立索引
例7 利用表设计器以“通讯录”表的“编号”字段为主关键字建立主索引,“身高”字段为次关键字建立普通索引。
由于“通讯录”表的“编号”字段值具有惟一性,可将其作为主关键字索引,而“身高”字段值可能相同,不具有惟一性,因此,该字段可以设置为普通索引。
操作步骤一:在项目管理器窗口中选择“通讯录”表,单击“修改”按钮,打开表设计器,选择“索引”选项卡。在“索引名”处输入索引名,如输入“编号”,“类型”为“主索引”,选择升序排序,索引关键字表达式为“编号”。如果指定符合条件的记录参加索引,可在“筛选”框中输入筛选表达式,设定筛选条件。
操作步骤二:同样的方法,以“身高”字段为次关键字,建立普通索引。结果如图所示。

操作步骤三:单击“确定”按钮,保存创建的索引。
在表设计器的“索引”选项卡中,可以修改已建立的索引,如索引名、类型、排序方式等。同时,也可以利用窗口中的“插入”和“删除”命令按钮,插入或者删除索引。
(3)使用索引
例8 在“通讯录”表中按索引项“身高”来排列数据。
操作步骤一:打开浏览“通讯录”表窗口,单击“表”菜单中的“属性”命令,打开“工作区属性”对话框,在“索引顺序”下拉列表框中选择“通讯录.身高”,如图所示,其中,<无顺序>表示不按任何索引项来排列,只按记录原始的输入顺序来显示。

操作步骤二:单击“确定”按钮。浏览记录时可以观察到记录按“身高”字段升序进行了排列。
3.2设置字属性
(1)设置字段的标题
给字段添加一个说明性标题,使用户更好地理解字段的含义,增强字段的可读性,在“浏览”窗口中,标题将显示在字段列标题中。
例9 以“通讯录”表为例,将“出生日期”字段标题设置为“生日”。
操作步骤一:在项目管理器窗口中,选定“通讯录”表,单击“修改”按钮,打开表设计器。
操作步骤二:单击“字段”选项卡,然后选择要设置标题的字段,例如,选择“出生日期”字段,在“显示”栏的“标题”框中输入“生日”。
操作步骤三:单击“确定”按钮,把标题永久性保存到表格结构中。
此时浏览“通讯录”表记录,“出生日期”字段标题被替换为“生日”标题。
(2)给字段添加注释
在“表设计器”的“字段”选项卡中,选择要添加注释的字段可以更详细地描述每一个字段所代表的含义。例如在“姓名”字段的“字段注释”框中键入一段注释内容:“同学或朋友的名字”。上旨地,在项目管理器窗口中展开“通讯录”表,选择“姓名”字段时,窗口下面将显示该字段的注释内容。
(3)设置字段默认值
在表中输入记录时,如果某字段出现固定值的次数较多,可将该字段设置为默认值。例如,将“角色”字段的默认值设置为“同学”。在表设计器的“字段”选项卡中,单击“角色”字段,在“字段有效性”栏的“默认值”框中键入字段的默认值“同学”(字符型数据要用定界符对“”括起来)。
(4)设置有效性规则
在输入记录时,通过设置有效性规则,可以判断输入的数据是否符合要求。例如,在输入“身高”时,其数据必须大于0而小于3米,如果在在这个范围之内,则说明输入的数据是错误的。
例10 对“身高”字段设置有效性规则,其接收数据的范围在0到3米之间。
操作步骤一:在表设计器窗口中,单击“字段”选项卡,然后选定要建立规则的“身高”字段。
操作步骤二:在“规则”文本框中输入有效性表达式:BETWEEN(身高,0,200),在“信息”文本框中输入说明信息:“身高的取值范围在0-200之间,请重新输入正确的数值”。
操作步骤三:单击“确定”按钮。
当在“身高”字段输入的数值不满足设置的有效性规则(取值在0-200之间)时,屏幕将显示设置的说明信息。
3.3工作区的使用
VFP系统提供了32767个工作区,并为每个工作区规定了一个工作区号,分别是1-32767,其中1-10号工作区可以用别名A-J来表示。一个工作区同一时刻只能打一七个表,但一个表可以在多个工作区同时打开,当前使用的工作区称为当前工作区。VFP启动后的默认工作区为1号,用户可以选择其他工作区。当要同时打开“通讯录”表和“家庭成员”表时,就要使用两个工作区,如果是多个工作区就可以同时打开多个表。
例11 在当前工作区中打开“家庭成员”表。
操作步骤一:建立“家庭成员”数据表。
操作步骤二:在系统菜单“窗口”中选择“数据工作期”命令,打开“数据工作期”窗口。
操作步骤三:在“数据工作期”窗口,单击“打开”按钮,选择要打开的“家庭成员”表,单击“确定”按钮,返回“数据工作期”窗口,如图所示,这时表的别名出现在“别名”列表中。

操作步骤四:单击“浏览”按钮,浏览当前工作区表中的记录。也可以在“数据工作期”窗口再打开其他的表。单击“关闭”按钮,则关闭当前工作区打开的表。
3.4 创建表间关系
通常在一个数据库管理系统有多个相关联的数据表,表与表之间的数据记录有某种对应关系。VFP利用表间关系来查找数据库中有关联的信息。
(1)表间关系
A.一对一关系? 指在表A中的任何一条记录,在表B中只能对应一条记录,而表B中的一条记录在表A中也只能有一条记录与之对应。
在VFP中,表之间的连接关系是通过索引来创建的,在一对一的关系中,两个表必须有一个相同的索引作为主关键字段,通过这个主关键字索引来建立关系。
B.一对多关系? 指表A中的一条记录可以对应表B中的多条记录,而表B中的一条记录最多只能对应表A的一条记录。一对多关系在关系数据库中是最普遍的关系。
建立一对多的关系时,“一”方(父表)使用主关键字或候选索引关键字,而“多”方(子表)使用普通索引关键字。例如,“通讯录”表中一条记录,通过“编号”字段对应“家庭成员”表中的两条记录。
C.多对多关系? 指表A中的一条记录可以对应表B中的多条记录,而表B中的一条记录也可以对应表A中的多条记录。
通常在处理多对多的关系时,多对多的关系分成两个不同的一对多的关系,这时需要创建一个中间表来建立两者的对应关系,用户可以把两个表中的主关键字都放在这个中间表中。
(2)设置表间临时关系
在VFP中可以利用“数据工作期”窗口建立两个表之间的关系。在建立表间的临时关系后,表中“多”方记录指针随着“一”方记录指针的移动而移动。
例12 利用“数据工作期”窗口建立“通讯录”表和“家庭成员”表之间的关系。
操作步骤一:在“数据工作期”窗口先打开“通讯录”表,再打开“家庭成员”表。
操作步骤二:在“别名”列表中选择父表,即“通讯录”表,然后单击“关系”按钮,此时“关系”列表中添加一个“通讯录”表。
操作步骤三:在“别名”列表中选择“家庭成员”表(该表已按“编号”字段建立普通索引),此时打开“设置索引顺序”对话框,设置表的索引顺序为“编号”。

操作步骤四:单击“确定”按钮,打开“表达式生成器”对话框,在“字段”列表中双击“编号”字段,将其添加到“SET RELATION”列表框中,再单击“确定”按钮,返回到“数据工作期”窗口,则建立了两表的关联,如图所示。

当关闭数据表时,所建立的表间临时关系被取消。
(3)建立表间永久关系
数据表之间的永久关系存储在数据库文件中,而不像表间的临时关系,每次使用时需要重新建立。索引关键字的类型决定了要创建永久关系的类型。在一对多关系中,“一”方表必须设置主索引关键字;而“多”方则使用普通索引关键字。在“表设计器”中可以设置索引字段。
例13 以“通讯录”表和“家庭成员”表为例,建立二者之间“一对多”的永久关系。
操作步骤一:打开项目管理器窗口,选择“通讯录管理”数据库,单击“修改”按钮,打开“数据库设计器”窗口。
操作步骤二:选定“通讯录”表中的主索引“编号”,将其拖到“家庭成员”表对应的索引“编号”上。此时,可以看到它们之间出现一条连线,表示在两个表之间建立了一对多的关系,如图所示。

操作步骤三:关闭“数据库设计器”窗口。
(4)编辑表间永久关系
在表之间建立关系后,如果要删除已建立的关系或重新建立其他关系,可以利用VFP提供的快捷菜单进行操作。操作步骤如下:
A.打开“数据库设计器”窗口,右击表之间的连线,单击快捷菜单的“编辑关系”命令,打开“编辑关系”对话框。
B.这时可以编辑两个表之间的关系。单击“确定”按钮。
如果要删除已建立的关系,右击表间连线,再单击快捷菜单中的“删除关系”命令,则连线消失,表示两表之间的关系被删除。
(5)编辑参照完整性
在表间建立关系后,可通过设置参照完整性来建立一些规则,以便控制关联表中记录的插入、更新或删除。下面以“通讯录”表和“家庭成员”表之间的关系为例,介绍如何设置参照完整性。
A.单击图中的“参照完整性”命令,打开“参照完整性生成器”对话框,如图所示。该对话框列出了此数据库中彼此有关联关系的表,并指明父表、子表、以及用以建立关联的索引关键字。


B.在“参照完整性生成器”对话框中,有更新规则、删除规则、插入规则三个选项卡。
①“更新规则”选项卡用来设置关联表之间的更新规则,有级联、限制和忽略三个选项。例如,“通讯录”表与“家庭成员”表之间通过“编号”关键字段建立了关联,当选择“级联”选项,若更新“通讯录”表中“编号”字段值时,则关联的“家庭成员”表中对应记录的“编号”字段值自动更新。
②“删除规则”用来设置关联表之间的删除规则。有级联、限制和忽略三个选项.
如果选择“限制”选项,当在“通讯录”表中要删除编号为“4”的记录时,因为在“家庭成员”表中存在编号是“4”的记录,则该操作被禁止。
③“插入规则”用来设置关联表之间的插入规则。有限制和忽略两个选项。
建立表间关系后,将根据这些规则自动进行检查和维护关联表,在对数据进行更新、删除和插入时父表和子表之间相互关联。