• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

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

    時間:2020-10-28 19:22:10 筆試經驗 我要投稿

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

    事務處理實現本地表的數據更新
      用事務來緩沖對磁盤數據的更新操作,對磁盤數據更新在事務結束之后進行,如果系統不能執行對數據庫的'更新操作,則取消整個事務,不執行任何更新操作。
      首先建立事務處理自定義類—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.)
      &&非強制的更新所有修改記錄

    【事務處理實現本地表的數據更新】相關文章:

    實現基于網頁的數據庫數據導入10-06

    用SQL實現查詢數據不顯示錯誤數據的方法11-10

    Sql Server、Access數據排名的實現方法11-12

    JavaScript數據結構與算法中集合的實現11-18

    如何實現多個硬盤同步數據傳輸07-25

    貴州安順實現社保卡制卡數據自助采集09-22

    基于MAPGIS的縣級土地利用現狀數據庫更新研究09-02

    淺談基于SOA 的數據交換中心的設計和實現論文07-08

    OPC實現的PKS組態王的數據通信論文12-04

    實現PHP獲取表單數據與HTML嵌入PHP腳本的技巧11-14

    日韩激情