VFP中利用視圖更新數(shù)據(jù)

字號(hào):

視圖是VFP所提供的一個(gè)強(qiáng)大的數(shù)據(jù)處理功能,使用視圖,不僅可以從數(shù)據(jù)表中提取一組記錄,而且在需要時(shí)可以改變記錄值,并將更新的結(jié)果反映在源數(shù)據(jù)表中。但在VFP中新建的視圖并不是可以更新的,我們需要修改視圖的屬性才可以使他們可以更新。
    修改視圖屬性的方法有兩種:
    1、在視圖設(shè)計(jì)器中我們只需選中“更新條件”中的“發(fā)送SQL更新選項(xiàng)”(在選擇這個(gè)選項(xiàng)前必須選中一個(gè)關(guān)鍵字和至少一個(gè)可更新的字段)就可使視圖更新。
    2、在實(shí)際應(yīng)用中,經(jīng)常需要臨時(shí)產(chǎn)生一個(gè)視圖,這樣我們就必須利用程序修改視圖的屬性使其可以更新,例如:
    USE XJMONTH
    CREATE SQL VIEW XJVIEW AS SELECT *FROM XJMONTH WHERE 科室名=KSM
    USE XJVIEW
    CURSORSETPROP('KEYFIELDLIST','姓名')
    *設(shè)置視圖與基表對(duì)應(yīng)的關(guān)鍵字段,該關(guān)鍵字段必須是的,否則在發(fā)送SQL更新時(shí)會(huì)出現(xiàn)錯(cuò)誤。
    CURSORSETPROP('SENDUPDATES',.T.)
    *打開(kāi)SQL更新開(kāi)關(guān),使視圖可以更新基表。
    另外,利用CURSORSETPROP函數(shù)還可以設(shè)置更新字段(默認(rèn)值是所有字段)、基表別名、更新方式等其他屬性,但實(shí)際上默認(rèn)值大部分都能滿(mǎn)足需要,只需要制定關(guān)鍵字,打開(kāi)SQL更新開(kāi)關(guān)就可以了。
    使識(shí)圖可更新的另一個(gè)函數(shù)是DBSETPROP(),使用DBSETPROP()函數(shù)可為當(dāng)前數(shù)據(jù)庫(kù)或當(dāng)前數(shù)據(jù)庫(kù)中的字段、命名連接、表或視圖設(shè)置屬性,但DBSETPROP()函數(shù)要求以獨(dú)占方式使用當(dāng)前數(shù)據(jù)庫(kù),而CURSORTSETPROP()則可以修改遠(yuǎn)程視圖或臨時(shí)表的屬性,因此還涉及到緩沖訪問(wèn)和更新遠(yuǎn)程表的控制,另外,兩者在語(yǔ)法上也存在一些差別。
    更多請(qǐng)關(guān)注考試大計(jì)算機(jī)等級(jí)站