1.一对一的关联
命令格式是:
SET RELATION TO[<关联表达式l>]INTO(工作区号1)l(别名1)
[,(关联表达式2>INTO(工作区号2>I(别名2>]…][AI)DITIVE]
该命令使当前表与INTO子句所指定的工作区上的表按表达式建立关联。
命令中各子句的含义是:
(1)INTO子句指定子文件所在的工作区,<关联表达式>用于指定关联条件。
可以使用索引表达式建立关联。首先在子文件中按某表达式建立索引并指定为主索引,然后使用某关联表达式建立关联,当关联成功后,每当主文件的记录指针移动时,Visual Fox—Pro就在子文件中查找索引表达式的值与主文件中关联表达式的值相匹配的记录,若找到了,则记录指针指向找到的第一条记录,如没有找到,则记录指针指向文件尾。注意,索引表达式和关联表达式不一定相同,当然大多数情况下是相同的。
也可以使用数值表达式建立关联。当主文件的记录指针移动时,子文件的记录指针移至
和主文件中数值表达式值相等的记录。
(2)若选择ADDITIVE,则在建立新的关联的同时保持原先的关联,否则会去掉原先的关联。
(3)省略所有选项时,SET RELATION TO命令将取消与当前表的所有关联。
2.一对多的关联
前面介绍了一对一的关联,这种关联只允许访问子文件满足关联条件的第一条记录。如果子文件有多条记录和主文件的某条记录相匹配,当需要访问子文件的多条匹配记录时,就需要建立一对多的关联。
命令格式是:
SET SKIP TO[(别名1)[,(别名2)…]
该命令使当前表和它的子表建立一对多的关联。
命令中各子句的含义是:
(1)别名指定子文件所在的工作区。如果缺省所有选项,则取消.主文件建立的所有一对多关联。
(2)一个主文件可以和多个子文件分别建立一对多的关联。因为建立一对多关联的表达式仍是建立一对一关联的表达式,所以建立一对多的关联应分两步完成:先使用命令SETRELATION建立一对一的关联(使用索引方式建立关联),再使用命令sET SKIP建立一对多的关联