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