當前位置:學問君>學習教育>考研>

VFP事務處理的控制命令及其應用

學問君 人氣:1.12W

VFP事務處理的控制命令及其應用
  2.1 控制事務處理的命令
  VFP提供了以下處理事務的命令和函數:
  . BEGIN TRANSACTION
  初始化一個事務,表示一個事務的開始。
  . ROLLBACK
  取消最近BEGIN TRANSACTION語句以來對錶的全部修改。
  . END TRANSACTION
  鎖定記錄,確認最近BEGIN TRANSACTION語句以來對錶的全部修改。
  . TXTLEVEL()
  確定當前事務處理的等級,最大值爲5,表示事務最多嵌套五層,TXTLEVEL()爲0表示當前無事務處理。
  2.2 更新遠程表時控制事務處理的命令
  a) SQLSETPROP() 格式如下:
  SQLSETPROP(連接句柄,設定類型[, 設定值])
  設定類型爲Transactions且設定值DB—TRANSMANUL(在 FOXPRO.H中定義)表示可以透過SQLCOMMIT()和SQLROLLBACK()人工處理事務。如果調用成功,SQLSETPROP() 返回1;否則,如果發生連接級錯誤則返回-1,發生環境級錯誤則返回-2。
  b) SQLROLLBACK()
  取消當前事務處理期間所做的任何更改。如果事務取消成功,SQLROLLBACK()返回1;否則,返回-1。如果 SQLROLLBACK() 返回-1,可以使用AERROR()確定該事務不能取消的原因。如果設定成人工處理方式,用 SQLROLLBACK()可以事務處理期間將對遠程表的所有更新全部取消。
  c) SQLCOMMIT()提交一個事務
  如果成功提交了事務,SQLCOMMIT()返回1;否則,返回-1。如果SQLCOMMIT()返回-1,可使用AERROR()函數確定該事務不能取消的原因。
  2.3 VFP使用事務處理的原則
  事務以BEGIN TRANSACTION開始,以END TRANSACTION 或ROLLBACK結束,必須成對使用;
  除非應用程序終止,事務一旦開始,直到遇到END TRANSACTION或ROLLBAKC語句期間,將保持有效;
  緩衝區中的數據比磁盤中的`數據優先級高,即事務處理優先使用緩衝區中的數據;
  如果在事務處理過程中應用程序終止,則取消事務對錶的所有操作;
  事務處理可以嵌套使用,最多嵌套五層。BEGIN TRANSACTION和END TRANSACTION(ROLLBACK)採用最近優先原則匹配。最內層的更新優先於嵌套事務處理中的其他更新;
  直接或間接調用事務時,VFP自動加鎖,直到END TRANSACTION(ROLLBACK)時自動解鎖;
  如果在事務處理期間使用了LOCK()命令, END TRANSACTION(ROLLBACK)時不自動解鎖。
 

VFP事務處理的控制命令及其應用