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

    事務處理實現遠程表的數據更新

    時間:2023-03-25 21:11:48 筆試經驗 我要投稿
    • 相關推薦

    事務處理實現遠程表的數據更新

    事務處理實現遠程表的數據更新
      當使用遠程表中的數據時,事務處理只更新視圖臨時表的本地備份,對遠程基表的更新不起作用。使用SQLSETPROP()啟動人工事務,SQLROLLBAK()和SQLCOMMIT()控制事務處理。
      在自定義類—TRANSACTION中增加方法遠程表事務處理確認—RTRANSCONFIRM和取消(—RTRANSCANCEL)兩種方法。同樣共享數據的各個用戶程序也使用行緩沖。
      — RTRANSCONFIRM 方法
      LPARAMETERS hConnect &&連接句柄
      SQLSETPROP(hConnect,'transmode',DB—TRANSMANUAL)
      Isuccess=TABLEUPDATE(.T.,.F.)
      &&非強制的更新所有修改記錄
      IF Isuccess=.F. &&若失敗
      oROLLBACK &&取消修改,結束事務1
      o=AERROR(aErrors) &&取消事務出錯
      oDO CASE
      CASE aErrors[1,1]=1585 &&當前記錄被其他用戶改過
      =RLOCK() &&記錄加鎖
      FOR nField=1 to FCOUNT()
      &&依次處理每一字段
      cField=FIELD(nField)
      IF OLDVAL(cField)<>CURVAL(cField)
      &&字段被改過,確認修改有效
      DO CASE
      oCASE TYPE(cField)='N'
      oT1=CURVAL(cField)-LDVAL(cField)
      oREPL cField WITH T1+EVAL(cField))
      oOTHEWISE
      oREPL cField WITH CURVAL(cField))
      oENDCASE
      ENDIF
      ENDFOR
      UNLOCK
      =TABLEUPDATE(.T.,.T.) &&強制更新數據
      SQLCOMMIT(hConnect) &&提交事務
      ENDCASE
      oELSE
      oSQLCOMMIT(hConnect) &&提交事務
      oENDIF
      o— RTRANSCANCEL 方法
      LPARAMETERS hConnect &&連接句柄
      oSQLSETPROP(hConnect,'transmode',DB—TRANSMANUAL)
      oISuccess=TABLEUPDATE(.T.,.F.)
      o&&非強制的更新所有修改記錄
      oIF Isuccess=.F. &&若失敗
      ROLLBACK &&取消修改,結束事務1
      =AERROR(aErrors) &&取消事務出錯
      DO CASE
      oCASE aErrors[1,1]=1585 &&當前記錄被其他用戶改過
      o =RLOCK() &&記錄加鎖
      oFOR nField=1 to FCOUNT()
      o&&依次處理每一字段
      ocField=FIELD(nField)
      oIF OLDVAL(cField)<>CURVAL(cField)
      &&字段被改過,確認修改無效,恢復原記錄
      =TABLEREVERT(.F.)
      UNLOCK
      ENDIF
      ENDFOR
      =TABLEUPDATE(.T.,.T.) &&強制更新數據
      SQLCOMMIT(hConnect) &&提交事務
      ENDCASE
      oELSE
      oSQLCOMMIT(hConnect) &&提交事務
      oENDIF
     

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

    Excel實現隔多列數據求和教程10-19

    Excel中數據要雙擊單元格能更新數據問題的解決方法08-09

    sqlplus如何訪問遠程oracle數據庫06-04

    構筑企業數據中心 實現理性分析決策06-04

    公司事務處理委托書通用06-01

    更新心情說說12-16

    顯卡驅動怎么更新06-21

    新經典語錄更新12-27

    更新管理制度04-11

    日韩激情