二級(jí)foxpro多個(gè)本地?cái)?shù)據(jù)

字號(hào):

假設(shè)為一個(gè)擁有12個(gè)辦公室的客戶寫一個(gè)應(yīng)用程序。每一個(gè)辦公室有它們自己的數(shù)據(jù)表拷貝, 但總辦公室的文件必須包含各辦公室的完整的數(shù)據(jù)以便進(jìn)行數(shù)據(jù)維護(hù)。每月一次, 各辦公室將他們的文件送到總辦公室并使用一個(gè)復(fù)雜的合并程序?qū)⒏鬓k公室的數(shù)據(jù)合并在一起。要實(shí)現(xiàn)該方法的程序是很難編寫的; 它必須查看各辦公室數(shù)據(jù)的添加,刪除和修改并將其反映到主辦公室的文件中去。
    這種情形在VFP5中可以通過離線視圖方便地實(shí)現(xiàn)。如果我今天來寫該程序,可能我會(huì)采用以下方案:
    各辦公室都擁有一個(gè)數(shù)據(jù)庫和離線視圖表的拷貝, 并可以在離線視圖中輸入數(shù)據(jù).離線視圖存放在與數(shù)據(jù)庫相同的目錄中以保存數(shù)據(jù)的一致性。
    在需要時(shí), 各辦公室將它們的離線視圖文件送至主辦公室。這些文件放在不同的子目錄中, 每一辦公室一個(gè)目錄。
    一次一個(gè)目錄地, 各辦公室的離線視圖文件拷貝到主辦公室的并復(fù)蓋主辦公室的視圖文件。然后在online 模式下打開視圖文件并用 tableupdate() 將視圖中數(shù)據(jù)的修改提交到源表。進(jìn)行該處理后各辦公室子目錄下的離線視圖文件將被刪除。
    刷新子辦公室的視圖, 讓視圖離線, 然后再聯(lián)線, 并將離線視圖文件送回各辦公室。當(dāng)然, 這意味著在辦公室的數(shù)據(jù)輸入在他們的文件送回主辦公室前不能更新。然而, 由于該處理可以在夜間自動(dòng)運(yùn)行, 這不會(huì)是大問題。
    當(dāng)你解壓演示該技術(shù)的源代碼壓縮文件時(shí),會(huì)建立一個(gè) MULTIPLE 目錄。如果VFP 沒有安裝在與這些文件相同驅(qū)動(dòng)器中的VFP5中, 修改 SETUP.PRG 文件并按實(shí)際修改lcDataDir 中的路徑定義。運(yùn)行 SETUP.PRG 來在MULTIPLE目錄中建立一個(gè)VFP 的樣板數(shù)據(jù)庫文件TESTDATA 的一個(gè)副本,并將它們復(fù)制到以下兩個(gè)目錄中: OFFICE1 和 OFFICE2。并建立一個(gè)叫做LV_CUSTOMER的離線視圖。
    在運(yùn)行SETUP后, 運(yùn)行 NEWRECS.PRG。這會(huì)添加新記錄到主辦公室(CUST_ID 000) 、辦公室1 (CUST_ID 111), 和辦公室2 (CUST_ID 222)的離線視圖中。在添加了各記錄后, 會(huì)顯示一個(gè)瀏覽窗口,這樣 你可以看見新記錄。在運(yùn)行完NEWRECS 后, 運(yùn)行 CONSOLID.PRG。該程序合并各視中的數(shù)據(jù)變化到主辦公室的CUSTOMER 表,并在一個(gè)流覽窗口中顯示該表的數(shù)據(jù)以便你查看所有的修改。