當前位置:萬佳範文網 >

求職簡歷 >筆試題目 >

事務處理實現本地表的數據更新

事務處理實現本地表的數據更新

事務處理實現本地表的數據更新

事務處理實現本地表的數據更新

用事務來緩衝對磁盤數據的更新操作,對磁盤數據更新在事務結束之後進行,如果系統不能執行對數據庫的更新操作,則取消整個事務,不執行任何更新操作。

首先建立事務處理自定義類—transaction,包括本地表事務處理確認(—transconfirm)和本地表事務處理取消(—transcancel)兩種方法。這兩種方法的前提條件是訪問共享數據的各個用户程序都使用行緩衝。用cursorsetprop(“buffering”,3)將表設置成開放式行緩衝方式。

—transconfirm 方法

begin transaction &&開始事務1

isuccess=tableupdate(.t.,.f.)

&&非強制的更新所有修改記錄

if isuccess=.f. &&若失敗

orollback &&取消修改,結束事務1

o=aerror(aerrors) &&取消事務出錯

odo case

oocase aerrors[1,1]=1585

&&當前記錄被其他用户改過

=rlock() &&記錄加鎖

for nfield=1 to fcount()

&&依次處理每一字段

cfield=field(nfield)

if oldval(cfield)<>curval(cfield)

o&&字段被改過,確認修改有效

odo case

case type(cfield)='n'

t1=curval(cfield)-ldval(cfield)

repl cfield with t1+eval(cfield))

oothewise

orepl cfield with curval(cfield))

oendcase

oendif

oendfor

ounlock

obegin transaction &&開始事務2

o=tableupdate(.t.,.t.) &&強制更新數據

oend transaction &&結束事務2

oendcase

else

end transaction &&結束事務1

endif

o— transcanel方法

begin transaction &&開始事務1

isuccess=tableupdate(.t.,.f.)

&&非強制的更新所有修改記錄

標籤: 事務處理 地表
  • 文章版權屬於文章作者所有,轉載請註明 https://wjfww.com/qiuzhi/bishi/3ozmwg.html
專題