1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

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

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

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>