計(jì)算機(jī)二級VFP輔導(dǎo):VFP表的關(guān)聯(lián)

字號:

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