julyclyde(原作)
作者系2月份微軟社區(qū)之星microsoft china community star
在編程中,經常需要使用事務。所謂事務,就是一系列必須都成功的操作,只要有一步操作失敗,所有其他的步驟也必須撤銷。比如用asp開發(fā)一個網絡硬盤系統,其用戶注冊部分要做的事有:
將用戶信息記入數據庫
為用戶開個文件夾用于存儲
初始化用戶操作日志
這三步必須使用事務,否則萬一磁盤操作失敗,而沒有撤銷數據庫操作,就會造成只能登陸而不能操作的“死用戶”現象。
由于數據庫系統特殊的發(fā)展歷史,小至access,大到db2,無不帶有事務支持。因此上述步驟可以如下表示:
on error resume next
第一步:
在事務環(huán)境下把用戶信息記入數據庫
if err then
關閉連接
退出
else
第二步:創(chuàng)建文件夾
if err then
回滾第一步數據庫操作,退出
else
第三步:在事務環(huán)境下操作日志數據庫
if err then
回滾第一步操作,刪除第二步建立的文件夾
退出
end if
end if
end if
提交第一步數據庫操作的事務
提交第二步數據庫操作的事務
end
每一步都需要進行判斷,如果失敗,還需要手工回滾前面多步操作,使程序變得復雜、難懂。如果今后更新了程序,增加其他步驟,還需要嵌套
更多信息請查看IT技術專欄