* * * * * b * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.5.1 工作区 VFP系统同时提供32767个工作区,系统默认值为 1 区。 任意时刻只有一个工作区是当前工作区,用户只能在当前工 作区对打开的当前表进行操作,而且每个工作区中只能打开 一个表。 每一个工作区用工作区号或别名来标识。 ①工作区号:用数字1~32767来标识32767个不同的工作区。 ②别名:前10工作区用A~J十个字母来标识,称为工作区的 别名。 3.5 表的关联 系统启动时,1号工作区是当前工作区,若想改变当前工 作区,则可使用SELECT命令来转换当前工作区。 格式:SELECT 工作区号|工作区别名 功能:选择一个工作区作为当前工作区。 说明: SELECT 0:表示选用当前未使用过的编号最小的工作区 作为当前工作区。 ③ 当前工作区的选择 例3.25 在1号和2号工作区内分别打开课程表和成绩表,并 选择1号工作区为当前工作区。 SELECT 1 或 SELECT A USE 课程表 LIST SELECT 2 或 SELECT B USE 成绩表 LIST SELECT A 1号工作区为当前工作区 思考:执行SELECT 0 命令后,当前工作区是几号工作区? ③ 当前工作区的选择 1. 关联的概述 表文件的关联:是把当前工作区中打开的表与另一个工作 区中打开的表进行逻辑连接,而不生成新的表。两个表建立 关联后,当前工作区表的记录指针移动时,被关联工作区的 表记录指针也将自动相应移动,以实现多表的同时操作。 在多个表中必须有一个表为关联表,称为父表,而其他的 表则为被关联表,称为子表。在两个表之间建立关联,必须 以某一个字段为标准,该字段称为关联关键字段。 表的关联分为:一对一关联、一对多关联和多对一关联。 3.5.2 表的关联 说明: 以学生表为父表,成绩表为子表,则为 以成绩表为父表,学生表为子表,则为 一对多关联。 多对一关联。 ① 多对一关联的建立 格式:SET RELATION TO [关联表达式1 INTO 别名1 …,关联表达式N INTO 别名N] [ADDITIVE] 功能:以当前表为父表,与另外一个或多个子表建立关联。 说明: 当用关联表达式 所指定的关键字段建立关联时,子表 已按关键字段建立了索引文件。 当父表文件的记录指针移动时,子表文件的记录指针指 向关键字段值与父表相同的记录。如果子表中没有与关键 字段值相同的记录,记录指针指向文件尾。 别名:可以是工作区别名或者是子表的别名。 2. 用命令建立关联 ADDITIVE:保证在建立关联时不取消以前建立的关联。 SET RELATION TO:取消关联。 例3.27 将成绩表和学生表建立多对一关联。 SELECT 2 USE 学生表 INDEX ON 学号 TAG XH SELECT 1 USE 成绩表 SET RELATION TO 学号 INTO 学生表 LIST 学号,B.姓名, B.专业,课程号,成绩 2. 用命令建立关联 格式:SET SKIP TO [别名1[, 别名2] ...] 功能:将当前表与其他工作区的表建立一对多关联。 说明: 必须先用 SET RELATION 命令建立了一对一的关联之后 才能建立一对多的关联。 当父表记录指针移动时,子表文件的记录指针指向第一个 关键字值与父表相匹配的记录,若找不到相匹配的记录,则 记录指针指向文件尾部。 SET SKIP TO:将取消一对多关联,但一对一关联关系仍 然存在。 ② 一对多关联的建立 例3.28 建立学生表和成绩表的一对多关联。 CLOSE ALL SELECT 2 USE 成绩表 INDEX ON 学号 TAG XH SELECT 1
原创力文档

文档评论(0)