国产毛片午夜福利,国产黄网,国产亚洲天堂,97国产精品

  •  
    asp的事務(wù)處理
    發(fā)布時(shí)間:2008-07-03   瀏覽次數(shù):1181405
    asp的事務(wù)處理 在編程中,經(jīng)常需要使用事務(wù)。 所謂事務(wù),是一系列必須都成功的操作,只要有一步操作失敗,所有其他的步驟也必須撤銷。比如用ASP開發(fā)一個(gè)網(wǎng)絡(luò)硬盤系統(tǒng),其用戶注冊部分要做的事有: 此內(nèi)容來源于 ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 網(wǎng)頁編程資訊官方網(wǎng)站!將用戶信息記入數(shù)據(jù)庫 為用戶開個(gè)文件夾用于存儲(chǔ) 初始化用戶操作日志 本文由 ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 收集整理。謝絕無聊之人轉(zhuǎn)載!這三步必須使用事務(wù),否則萬一磁盤操作失敗,而沒有撤銷數(shù)據(jù)庫操作,會(huì)造成只能登陸而不能操作的“死用戶”現(xiàn)象。 由于數(shù)據(jù)庫系統(tǒng)特殊的發(fā)展歷史,小至Access,大到DB2,無不帶有事務(wù)支持。因此上述步驟可以如下表示: OnErrorResumeNext 步: 在事務(wù)環(huán)境下把用戶信息記入數(shù)據(jù)庫 IfErrThen 關(guān)閉連接 退出 Else 第二步:創(chuàng)建文件夾 IfErrThen 回滾步數(shù)據(jù)庫操作,退出 Else 第三步:在事務(wù)環(huán)境下操作日志數(shù)據(jù)庫 IfErrThen 回滾步操作,刪除第二步建立的文件夾 退出 EndIf EndIf EndIf 提交步數(shù)據(jù)庫操作的事務(wù) 提交第二步數(shù)據(jù)庫操作的事務(wù) End 盜版它人網(wǎng)站的內(nèi)容可恥,您查看的內(nèi)容來源于★點(diǎn)擊設(shè)計(jì)★www.djasp.Net 每一步都需要進(jìn)行判斷,如果失敗,還需要手工回滾前面多步操作,使程序變得復(fù)雜、難懂。如果今后更新了程序,增加其他步驟,還需要嵌套更多層的If...Else...EndIf,使程序流程更加復(fù)雜。 此內(nèi)容來源于 ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 網(wǎng)頁編程資訊官方網(wǎng)站!正確的解決辦法是使用ASP的事務(wù)控制功能。IIS通過和MTS服務(wù)聯(lián)系,可以控制多種支持事務(wù)的系統(tǒng),當(dāng)程序發(fā)出“失敗”的信號(hào)時(shí),所有支持事務(wù)的系統(tǒng)均將自動(dòng)回滾,即使操作已經(jīng)正式完成;對不支持事務(wù)的操作也提供了方便的手工回滾方式。上面的例子用ASP事務(wù)控制功能重寫如下: ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 專業(yè)的WEB編程資訊技術(shù)站點(diǎn),歡迎訪問! OnErrorResumeNext 盜版它人網(wǎng)站的內(nèi)容可恥,您查看的內(nèi)容來源于★點(diǎn)擊設(shè)計(jì)★www.djasp.Net SetConn=Server.CreateObject("ADODB.Connection") Conn.Open.... Conn.Execute"INSERT...." Conn.Close SetConn=Nothing 本文由 ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 收集整理。謝絕無聊之人轉(zhuǎn)載!SetConn2=Server.CreateObject("ADODB.Connection") Conn2.Open.... Conn2.Execute"INSERT...." Conn2.Close SetConn2=Nothing ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 全力打造WEB技術(shù)站點(diǎn),歡迎大家訪問!SetFSO=Server.CreateObject("Scripting.FilesystemObject") FSO.CreateFolder"...." 本文由 ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 收集整理。謝絕無聊之人轉(zhuǎn)載!IfErrThen ObjectContext.SetAbort’通知所有支持事務(wù)的組件回滾,并運(yùn)行手工回滾代碼 Else ObjectContext.SetComplete EndIf SetFSO=Nothing ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 專業(yè)的WEB編程資訊技術(shù)站點(diǎn),歡迎訪問!SubOnTransactionAbort Response.Write"錯(cuò)誤" FSO.DeleteFileServer.Mappath("a.txt")’FSO的手工回滾——?jiǎng)h除文件夾 EndSub SubOnTransactionCommit Response.Write"勝利完成任務(wù)" EndSub %> 請勿盜版 ★點(diǎn)擊設(shè)計(jì)★ http://www.djasp.Net 網(wǎng)站上的內(nèi)容,謝謝合作!行的表示這一頁ASP文件需要MTS的事務(wù)支持。 中間的各個(gè)操作都按普通順序書寫,而不用考慮回滾問題。在程序判斷是否有錯(cuò)誤。如果有,調(diào)用ObjectContext的SetAbort方法,IIS會(huì)通過MTS服務(wù)通知所有支持事務(wù)的組件回滾(主要是數(shù)據(jù)庫),并且運(yùn)行SubOnTransactionAbort對不支持事務(wù)的操作手工回滾;如果沒有發(fā)生錯(cuò)誤,調(diào)用ObjectContext的SetComplete方法,則會(huì)運(yùn)行SubOnTransactionCommit來顯示成功的消息。 整個(gè)ASP程序不需要為判斷錯(cuò)誤和回滾操作書寫多余的代碼,只須在進(jìn)行判斷,即使今后增加了多步操作,也只需要在SubOnTransactionAbort中進(jìn)行控制即可,非常方便,程序員可以專注于過程編寫而不是書寫糾錯(cuò)代碼。
    立即預(yù)約