計算機二級VFP輔導:VFP表的關聯

字號:

考試大編輯與考生來共同探討:VFP表的關聯
    所謂關聯,就是當前表記錄指針的移動,能引起別的表按某種條件相應地移動記錄指針。建立關聯后,稱當前表為主文件,與主文件建立關聯的表為子文件 。
    1.一對一的關聯
    命令格式是:
    SET RELATION TO[<關聯表達式l>]INTO(工作區(qū)號1)l(別名1)
    [,(關聯表達式2>INTO(工作區(qū)號2>I(別名2>]…][AI)DITIVE]
    該命令使當前表與INTO子句所指定的工作區(qū)上的表按表達式建立關聯。
    命令中各子句的含義是:
    (1)INTO子句指定子文件所在的工作區(qū),<關聯表達式>用于指定關聯條件。
    可以使用索引表達式建立關聯。首先在子文件中按某表達式建立索引并指定為主索引,然后使用某關聯表達式建立關聯,當關聯成功后,每當主文件的記錄指針移動時,Visual Fox—Pro就在子文件中查找索引表達式的值與主文件中關聯表達式的值相匹配的記錄,若找到了,則記錄指針指向找到的第一條記錄,如沒有找到,則記錄指針指向文件尾。注意,索引表達式和關聯表達式不一定相同,當然大多數情況下是相同的。
    也可以使用數值表達式建立關聯。當主文件的記錄指針移動時,子文件的記錄指針移至
    和主文件中數值表達式值相等的記錄。
    (2)若選擇ADDITIVE,則在建立新的關聯的同時保持原先的關聯,否則會去掉原先的關聯。
    (3)省略所有選項時,SET RELATION TO命令將取消與當前表的所有關聯。
    2.一對多的關聯
    前面介紹了一對一的關聯,這種關聯只允許訪問子文件滿足關聯條件的第一條記錄。如果子文件有多條記錄和主文件的某條記錄相匹配,當需要訪問子文件的多條匹配記錄時,就需要建立一對多的關聯。
    命令格式是:
    SET SKIP TO[(別名1)[,(別名2)…]
    該命令使當前表和它的子表建立一對多的關聯。
    命令中各子句的含義是:
    (1)別名指定子文件所在的工作區(qū)。如果缺省所有選項,則取消.主文件建立的所有一對多關聯。
    (2)一個主文件可以和多個子文件分別建立一對多的關聯。因為建立一對多關聯的表達式仍是建立一對一關聯的表達式,所以建立一對多的關聯應分兩步完成:先使用命令SETRELATION建立一對一的關聯(使用索引方式建立關聯),再使用命令sET SKIP建立一對多的關聯。