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