在asp中使用事務(wù)控制

字號:


    julyclyde(原作)
    作者系2月份微軟社區(qū)之星microsoft china community star
    在編程中,經(jīng)常需要使用事務(wù)。所謂事務(wù),就是一系列必須都成功的操作,只要有一步操作失敗,所有其他的步驟也必須撤銷。比如用asp開發(fā)一個(gè)網(wǎng)絡(luò)硬盤系統(tǒng),其用戶注冊部分要做的事有:
    將用戶信息記入數(shù)據(jù)庫
    為用戶開個(gè)文件夾用于存儲
    初始化用戶操作日志
    這三步必須使用事務(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ù)雜、難懂。如果今后更新了程序,增加其他步驟,還需要嵌套