婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Asp事務(wù)處理

Asp事務(wù)處理

熱門標(biāo)簽:怎么在地圖標(biāo)注自己 縣域地圖標(biāo)注打印店 外呼系統(tǒng)API接口 萊西電子地圖標(biāo)注 金昌電話機(jī)器人價(jià)格 鳳臺(tái)百度地圖標(biāo)注店 個(gè)人可以辦理400電話么 武夷山旅游地圖標(biāo)注 修改地圖標(biāo)注
在編程中,經(jīng)常需要使用事務(wù)。所謂事務(wù),就是一系列必須都成功的操作,只要有一步操作失敗,所有其他的步驟也必須撤銷。比如用ASP開發(fā)一個(gè)網(wǎng)絡(luò)硬盤系統(tǒng),其用戶注冊(cè)部分要做的事有:  
  1、將用戶信息記入數(shù)據(jù)庫  
  2、為用戶開個(gè)文件夾用于存儲(chǔ)  
  3、初始化用戶操作日志 

  這三步必須使用事務(wù),否則萬一磁盤操作失敗,而沒有撤銷數(shù)據(jù)庫操作,就會(huì)造成只能登陸而不能操作的“死用戶”現(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ù)雜、難懂。如果今后更新了程序,增加其他步驟,還需要嵌套更多層的If...Else...End If,使程序流程更加復(fù)雜。 

  正確的解決辦法是使用ASP的事務(wù)控制功能。IIS通過和MTS服務(wù)聯(lián)系,可以控制多種支持事務(wù)的系統(tǒng),當(dāng)程序發(fā)出“失敗”的信號(hào)時(shí),所有支持事務(wù)的系統(tǒng)均將自動(dòng)回滾,即使操作已經(jīng)正式完成;對(duì)不支持事務(wù)的操作也提供了方便的手工回滾方式。上面的例子用ASP事務(wù)控制功能重寫如下: 
復(fù)制代碼 代碼如下:

%@ TRANSACTION = Required %>  
On Error Resume Next  

Set Conn=Server.CreateObject("ADODB.Connection")  
Conn.Open ....  
Conn.Execute "INSERT...."  
Conn.Close  
Set Conn=Nothing  

Set Conn2=Server.CreateObject("ADODB.Connection")  
Conn2.Open ....  
Conn2.Execute "INSERT...."  
Conn2.Close  
Set Conn2=Nothing  

Set FSO=Server.CreateObject("Scripting.FilesystemObject")  
FSO.CreateFolder "...."  

If Err Then  
ObjectContext.SetAbort '通知所有支持事務(wù)的組件回滾,并運(yùn)行手工回滾代碼  
Else  
ObjectContext.SetComplete  
End If  
Set FSO=Nothing  

Sub OnTransactionAbort  
Response.Write "錯(cuò)誤"  
FSO.DeleteFile Server.Mappath("a.txt") 'FSO的手工回滾——?jiǎng)h除文件夾  
End Sub  
Sub OnTransactionCommit  
Response.Write "勝利完成任務(wù)"  
End Sub  
%> 

  第一行的%@ TRANSACTION = Required %>表示這一頁ASP文件需要MTS的事務(wù)支持。中間的各個(gè)操作都按普通順序書寫,而不用考慮回滾問題。在程序最后判斷是否有錯(cuò)誤。如果有,調(diào)用ObjectContext的SetAbort方法,IIS會(huì)通過MTS服務(wù)通知所有支持事務(wù)的組件回滾(主要是數(shù)據(jù)庫),并且運(yùn)行Sub OnTransactionAbort對(duì)不支持事務(wù)的操作手工回滾;如果沒有發(fā)生錯(cuò)誤,調(diào)用ObjectContext的SetComplete方法,則會(huì)運(yùn)行Sub OnTransactionCommit來顯示成功的消息。 

  整個(gè)ASP程序不需要為判斷錯(cuò)誤和回滾操作書寫多余的代碼,只須在最后進(jìn)行判斷,即使今后增加了多步操作,也只需要在Sub OnTransactionAbort中進(jìn)行控制即可,非常方便,程序員可以專注于過程編寫而不是書寫糾錯(cuò)代碼。 

  其實(shí)ASP還提供了許多更有用的功能,等著我們使用,千萬不要以為ASP使用腳本語言,功能就一定弱。

以下是引用片段:
%  
'asp事務(wù)處理。  
'測(cè)試數(shù)據(jù)庫為sql server,服務(wù)器為本機(jī),數(shù)據(jù)庫名為test,表名為a,兩個(gè)字段id(int)主鍵標(biāo)識(shí),num(int)  
set conn=server.CreateObject("adodb.connection")   
strConn="provider=sqloledb.1;persist security info=false;uid=sa;pwd=sa;Initial Catalog=test;Data Source=."  
conn.Open strConn  
'以上代碼建立數(shù)據(jù)庫連接  
conn.BeginTrans '事務(wù)開始  
strSql1="update a set num=1000 where id=24" '第一個(gè)sql語句為update。(語法正確)  
strSql2="insert into a(num) values('a')" '第二個(gè)sql語句為錯(cuò)誤的sql語句  
strSql3="insert into a(num) values(33333)" '第三個(gè)sql語句為正確的sql語句   

call conn.execute(strSql1)   
call conn.execute(strSql2)   
call conn.execute(strSql3)   

if conn.Errors.Count=0 then   
conn.CommitTrans '如果沒有conn錯(cuò)誤,則執(zhí)行事務(wù)提交  
else   
conn.RollbackTrans '否則回滾  
end if  
%> 

以上代碼經(jīng)調(diào)試,可以正常的進(jìn)行事務(wù)處理。但是有時(shí)候,我們并不想將編譯錯(cuò)誤顯示給用戶。 
則我們需要在conn.BeginTrans后面加上On error resume next 
但是因?yàn)橛玫搅薕n error resume next。conn.Errors.Count只能獲得最后一個(gè)數(shù)據(jù)庫操作的conn返回的結(jié)果 。上面的三個(gè)sql語句,因?yàn)樽詈笠粋€(gè)sql語句是正確的,則此事務(wù)處理就無效了。那我們需要對(duì)出錯(cuò)處理作出相對(duì)應(yīng)的修改。 
if conn.Errors.Count=0 then應(yīng)該改為if err.number=0 then 
這樣,我們可以在數(shù)據(jù)庫回滾后同時(shí)做出其他相對(duì)應(yīng)的操作或者提示。修改后的代碼如下: 
以下是引用片段:
%  
set conn=server.CreateObject("adodb.connection")   
strConn="provider=sqloledb.1;persist security info=false;uid=sa;pwd=sa;Initial Catalog=test;Data Source=."  
conn.Open strConn  
'以上代碼建立數(shù)據(jù)庫連接  
conn.BeginTrans '事務(wù)開始  
on error resume next '增加的代碼  
strSql1="update a set num=1000 where id=24" '第一個(gè)sql語句為update。(語法正確)  
strSql2="insert into a(num) values('a')" '第二個(gè)sql語句為錯(cuò)誤的sql語句  
strSql3="insert into a(num) values(33333)" '第三個(gè)sql語句為正確的sql語句   

call conn.execute(strSql1)   
call conn.execute(strSql2)   
call conn.execute(strSql3)   

if err.number =0 then   
conn.CommitTrans '如果沒有conn錯(cuò)誤,則執(zhí)行事務(wù)提交  
else   
conn.RollbackTrans '否則回滾  
'回滾后的其他操作  
strerr=err.Description  
Response.Write "數(shù)據(jù)庫錯(cuò)誤!錯(cuò)誤日志:font color=red>"strerr "/font>"  
Response.End   
end if
%> 

標(biāo)簽:南京 涼山 通遼 邢臺(tái) 楚雄 清遠(yuǎn) 赤峰 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp事務(wù)處理》,本文關(guān)鍵詞  Asp,事務(wù)處理,Asp,事務(wù)處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Asp事務(wù)處理》相關(guān)的同類信息!
  • 本頁收集關(guān)于Asp事務(wù)處理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国内成人精品2018免费看| 波多野结衣中文字幕一区 | 亚洲卡通动漫在线| 国产精品丝袜黑色高跟| 激情六月婷婷久久| 国模套图日韩精品一区二区| 成人免费毛片app| 97精品视频在线观看自产线路二| 亚洲精品国产成人久久av盗摄| 成人精品免费网站| 91精品国产综合久久久久久漫画| 最新高清无码专区| 欧美视频一区二区三区| 亚洲国产一区二区在线播放| 欧美最新大片在线看| 亚洲一区二区高清| 欧美视频在线观看一区| 中文字幕五月欧美| 成熟亚洲日本毛茸茸凸凹| 国产精品乱码人人做人人爱| 成人av在线看| 久久精品亚洲一区二区三区浴池| 五月天激情小说综合| 欧美三级日韩在线| 亚洲另类春色校园小说| 欧美成人免费网站| 日本伊人色综合网| 99这里都是精品| 蜜桃久久av一区| 国产日产精品1区| 欧美乱妇20p| 亚洲美女在线国产| 国产精品拍天天在线| 波多野结衣中文字幕一区二区三区| 亚洲综合色噜噜狠狠| 91蜜桃免费观看视频| 一区二区三区视频在线看| 国产日产欧产精品推荐色 | xfplay精品久久| www国产精品av| 色综合久久综合| 欧美精品一区二区蜜臀亚洲| 国产成人精品免费网站| 一区二区三区日韩欧美| 国产精品一区二区三区乱码 | 欧美三级韩国三级日本三斤| 99re这里只有精品6| 成人av网址在线| 亚洲国产日韩在线一区模特| 中文一区二区在线观看| 91麻豆精品国产91久久久| 欧美影院精品一区| 欧美一区二区视频网站| 久久综合九色综合久久久精品综合 | 成人一区二区三区中文字幕| 国产精品一卡二| 国产一区二区福利| www.日韩在线| 成人激情免费视频| 99视频精品在线| av影院午夜一区| 色偷偷久久人人79超碰人人澡| 91啪亚洲精品| 精品视频免费在线| 国产精品亚洲成人| 国产精品自拍毛片| 一区二区三区不卡在线观看| 亚洲成人资源网| 五月天亚洲婷婷| 久久精品国产精品亚洲综合| 另类的小说在线视频另类成人小视频在线 | 国产成人在线网站| 中文字幕在线不卡视频| 国内精品久久久久影院一蜜桃| 青青草精品视频| 国产一区二三区| 午夜影院久久久| 午夜视频一区二区| 国产二区国产一区在线观看| 91免费版pro下载短视频| 日韩女优视频免费观看| 精品久久99ma| 亚洲精品成人a在线观看| 国内精品写真在线观看| 久久综合九色综合欧美98| 亚洲欧美日韩中文播放| 国产精品成人在线观看| 麻豆91在线播放| 欧美亚洲国产bt| 亚洲欧美日韩一区| 日本aⅴ免费视频一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 99久久精品免费观看| 国产精品天天摸av网| 亚洲伊人伊色伊影伊综合网| 久久美女高清视频| 午夜精品久久久久久久99樱桃| 日韩精品福利网| 国产制服丝袜一区| 91精品国产免费久久综合| 亚洲欧美日韩一区| 日日夜夜免费精品| 久久久综合精品| 91在线精品秘密一区二区| 日韩一区二区三区观看| 欧美激情中文字幕| 在线一区二区视频| 日韩电影在线观看一区| 国产不卡视频一区二区三区| av不卡在线观看| 久久综合色8888| 国产aⅴ精品一区二区三区色成熟| 日韩精品中午字幕| 国产精品一级二级三级| 国产精品国产三级国产三级人妇 | 亚洲精品乱码久久久久久久久 | 国产精品一区二区无线| 一区二区三区四区激情| 18欧美亚洲精品| jizz一区二区| 制服丝袜亚洲精品中文字幕| 青草国产精品久久久久久| 国产精品午夜在线观看| 欧美日韩视频在线一区二区| 中文字幕永久在线不卡| av亚洲精华国产精华精华| 国产精品另类一区| 日韩色视频在线观看| 不卡的av网站| 99久久婷婷国产综合精品| 日韩精品自拍偷拍| 国产精品 日产精品 欧美精品| 国产成人综合网站| 欧美激情一区二区三区不卡| 欧美裸体一区二区三区| 久久久久久久久久久久久久久99| 中文字幕一区免费在线观看| 欧美另类变人与禽xxxxx| 国产福利精品一区二区| 成人一级片网址| 美女在线视频一区| 精品久久久久久久人人人人传媒| 久久这里只有精品首页| 日韩欧美一区二区视频| 日韩欧美中文一区| 国产成人精品1024| 国产精品自拍一区| 精品国产三级a在线观看| 免费一级欧美片在线观看| 成人欧美一区二区三区| 26uuu亚洲综合色| 欧美日韩国产成人在线91| 国产精品一区免费视频| 国产一区二区视频在线播放| 欧美日韩亚州综合| 久久久99精品久久| 亚洲综合成人在线视频| 成人深夜在线观看| 久久久久亚洲蜜桃| 亚洲人成网站色在线观看| 精品国产露脸精彩对白| 日韩一区二区免费在线电影| 久久精品人人做人人综合| 亚洲欧洲日产国产综合网| 99久久综合国产精品| 欧美成人女星排名| 日本欧美在线观看| 一二三区精品福利视频| 成人黄色a**站在线观看| 欧美日韩精品欧美日韩精品一| 国产精品视频一区二区三区不卡| 懂色av中文字幕一区二区三区| 国产亚洲1区2区3区| 久久精品国产在热久久| 色系网站成人免费| 国产精品国产三级国产有无不卡| 播五月开心婷婷综合| 国产精品白丝在线| 国产资源精品在线观看| 久久国产精品一区二区| 国产夫妻精品视频| 国产精品乱人伦| 国产精品―色哟哟| 久久久亚洲欧洲日产国码αv| 国产精品自拍毛片| 五月开心婷婷久久| 日本一二三四高清不卡| 亚洲综合免费观看高清完整版在线 | 国产精品香蕉一区二区三区| 久久不见久久见免费视频1| av在线免费不卡| 日本欧美加勒比视频| 777午夜精品免费视频| 欧美va亚洲va| 在线电影欧美成精品| 中文字幕欧美国产| 天堂成人免费av电影一区| 欧美成人精品1314www| 91精品午夜视频| 欧美精品一区二区三区久久久|