<%
'asp事務處理。
'測試資料庫為sql server,伺服器為本機,資料庫名為test,表名為a,兩個欄位id(int)主鍵標識,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
'以上**建立資料庫連線
conn.begintrans '事務開始
strsql1="update a set num=1000 where id=24" '第乙個sql語句為update。(語法正確)
strsql2="insert into a(num) values('a')" '第二個sql語句為錯誤的sql語句
strsql3="insert into a(num) values(33333)" '第三個sql語句為正確的sql語句
call conn.execute(strsql1)
call conn.execute(strsql2)
call conn.execute(strsql3)
if conn.errors.count=0 then
conn.committrans '如果沒有conn錯誤,則執行事務提交
else
conn.rollbacktrans '否則回滾
end if
%>
以上**經除錯,可以正常的進行事務處理。但是有時候,我們並不想將編譯錯誤顯示給使用者。
則我們需要在conn.begintrans後面加上on error resume next
但是因為用到了on error resume next。conn.errors.count只能獲得最後乙個資料庫操作的conn返回的結果 。上面的三個sql語句,因為最後乙個sql語句是正確的,則此事務處理就無效了。那我們需要對出錯處理作出相對應的修改。
if conn.errors.count=0 then應該改為if err.number=0 then
這樣,我們可以在資料庫回滾後同時做出其他相對應的操作或者提示。修改後的**如下:
<%
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
'以上**建立資料庫連線
conn.begintrans '事務開始
on error resume next '增加的**
strsql1="update a set num=1000 where id=24" '第乙個sql語句為update。(語法正確)
strsql2="insert into a(num) values('a')" '第二個sql語句為錯誤的sql語句
strsql3="insert into a(num) values(33333)" '第三個sql語句為正確的sql語句
call conn.execute(strsql1)
call conn.execute(strsql2)
call conn.execute(strsql3)
if err.number =0 then
conn.committrans '如果沒有conn錯誤,則執行事務提交
else
conn.rollbacktrans '否則回滾
'回滾後的其他操作
strerr=err.description
response.write "資料庫錯誤!錯誤日誌:"&strerr &""
response.end
end if
ASP事務處理
asp事務處理。測試資料庫為sql server,伺服器為本機,資料庫名為test,表名為a,兩個欄位id int 主鍵標識,num int set conn server.createobject adodb.connection strconn provider sqloledb.1 persi...
asp事務處理
當大量的對資料庫進行插入,修改,刪除等操作時,如果要實現事務,可以用以下 如 transaction required on error resume next strsql1 insert into a num values 1 strsql2 insert into a num values a...
ASP事務處理經典文摘
在開發web應用時,無一例外地需要訪問資料庫,以完成對資料的查詢 插入 更新 刪除等操作。受應用邏輯的影響,有時需要將多條資料庫操作指令組成乙個工作單元 事務 在資料庫中,所謂事務是指一組邏輯操作單元,它使資料從一種狀態變換到另一種狀態。為確保資料庫中資料的一致性,應當用離散的成組的邏輯單元運算元據...