<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

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

            時間: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

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看