VFP表間連接和VFP表的更新操作

字號(hào):

一.建立表間連接:有時(shí)需要將不同表的內(nèi)容按某種條件重新組成一個(gè)新表,可用連接命令join來實(shí)現(xiàn)該功能.Join命令實(shí)現(xiàn)由兩個(gè)表,即當(dāng)前工作表和另一個(gè)工作區(qū)中的表(由別名指定),依據(jù)條件和指定的字段建立新表.執(zhí)行該命令時(shí),先將當(dāng)前表的記錄指針指向首記錄,然后在別名表中依據(jù)指定條件搜索,凡滿足條件的別名表的記錄都各自與當(dāng)前表的首記錄組成一個(gè)新記錄,并記入新文件中.隨后將當(dāng)前表的指針移向下一條記錄,重復(fù)上面的搜索并組成新記錄記入新表中,直到后完成.
    格式:join with 表別名 to 新表名 [for 條件] [fields 字段名表]
    例:將職工檔案.dbf和工資情況.dbf用連接命令生成一個(gè)新表,要求新表中包括姓名,出生時(shí)間,獎(jiǎng)金和工資
    select 2
    use 工資情況 alias bm
    browse &&
    select 1
    use 職工檔案
    browse &&
    join with bm to xinbiao for 編號(hào)=bm.編號(hào) fields 姓名,出生時(shí)間,bm.獎(jiǎng)金,bm.工資
    select 3
    use xinbiao
    browse &&
    close database &&關(guān)閉數(shù)據(jù)庫,包括其中的表
    二.表的更新操作:商業(yè)中常需要根據(jù)商品的銷售情況及進(jìn)貨情況不斷更新庫存商品的數(shù)量和金額,在vfp中,使用update命令來處理,命令格式為:
    update on 關(guān)鍵字段 from 數(shù)據(jù)源表 replace 被更新字段 with 表達(dá)式
    說明:(1).更新命令是用數(shù)據(jù)源表去更新當(dāng)前工作表,即用表達(dá)式的值去更新被更新字段的值.
    (2).關(guān)鍵字段必須是兩個(gè)表的公共字段,且兩個(gè)表都按此關(guān)鍵字進(jìn)行了排序或索引,且索引隨表打開.
    (3).引用數(shù)據(jù)源表的字段時(shí)須用別名指定.
    (4).該命令執(zhí)行過程:對(duì)當(dāng)前表(被更新表)的各條記錄依其關(guān)鍵字值找到數(shù)據(jù)源表中相應(yīng)記錄,然后用表達(dá)式的值去更新相應(yīng)字段內(nèi)容.若在數(shù)據(jù)源表中沒有與此記錄相應(yīng)的記錄,則當(dāng)前表的這條記錄就不做更新操作.若當(dāng)前表的全部記錄都進(jìn)行了上述更新操作,則此命令的更新操作也就完成了.
    例:新建一個(gè)表xy.dbf,結(jié)構(gòu)如下:xy(編號(hào) c5,工資 N6.1),輸入幾條記錄然后用xy.dbf的值去更新"工資情況.dbf"的"工資"字段的內(nèi)容.
    1.按要求建立xy.dbf的表結(jié)構(gòu),并輸入5條記錄,
    close database &&先把數(shù)據(jù)庫及其中的表關(guān)閉,我們從頭開始.
    use 工資情況
    browse &&更新前的情況,重點(diǎn)看工資字段的值,
    use xy
    browse &&
    index on 編號(hào) tag bh3 &&依據(jù)編號(hào)建立索引,索引名為bh3
    use
    select 1
    use xy order tag bh3 alias bm1 &&在1號(hào)工作區(qū)打開xy表同時(shí)打開bh3索引,表別名定為bm1
    select 2
    use 工資情況 order tag bh2 &&上節(jié)課已為工資情況表按"編號(hào)"建立索引,名為bh2
    update on 編號(hào) from bm1 replace 工資 with 工資+bm1.工資 &&將xy表中的工資字段的值加到當(dāng)前表中
    browse &&更新后的"工資情況"表,
    use