asp內(nèi)置對(duì)象 ObjectContext 事務(wù)管理 詳解
更新時(shí)間:2007年11月22日 22:51:55 作者:
asp內(nèi)置對(duì)象 ObjectContext 詳解
您可以使用 ObjectContext 對(duì)象提交或放棄一項(xiàng)由 Microsoft Transaction Server (MTS) 管理的事務(wù),它由 ASP 頁(yè)包含的腳本初始化。
ASP 包含 @TRANSACTION 指令時(shí),該頁(yè)會(huì)在事務(wù)中運(yùn)行,直到事務(wù)成功或失敗后才會(huì)終止。
語(yǔ)法
ObjectContext.method
方法
SetComplete SetComplete 方法聲明腳本不了解事務(wù)未完成的原因。如果事務(wù)中的所有組件都調(diào)用 SetComplete,事務(wù)將完成。
SetAbort SetAbort 方法聲明被腳本初始化的事務(wù)未完成,無(wú)法更新源。
事件
OnTransactionCommit
OnTransactionAbort
注釋
ObjectContext 實(shí)現(xiàn) MTS ObjectContext 對(duì)象的兩種方法。 SetAbort 方法完全終止事務(wù)。這樣,MTS 不更新在第一階段聯(lián)系的源。事務(wù)終止時(shí),將處理腳本的 OnTransactionAbort 事件。
調(diào)用 SetComplete 方法并不一定意味著事務(wù)已完成。只有腳本調(diào)用的所有事務(wù)組件都調(diào)用了 SetComplete,事務(wù)才能完成。在大多數(shù)實(shí)例中,如果結(jié)束處理時(shí)未調(diào)用 SetAbort,腳本通常被假定為完成的,所以不一定要在腳本內(nèi)調(diào)用 SetComplete。
ObjectContext 展示了 SetAbort 和 SetComplete 以外的六種方法。這些方法可用于腳本調(diào)用的組件,但不能直接用于 ASP 腳本。
示例
這里示范使用 SetAbort 和 SetCommit 的方法。Sales.htm 文件獲取處理銷售請(qǐng)求所需的數(shù)據(jù)。第二個(gè)文件——SalesVerify.asp 中的腳本使用兩個(gè)對(duì)象——Inventory 和 Sales 處理銷售。如果 Inventory 返回了錯(cuò)誤代碼表示供銷售的存貨不足,就會(huì)調(diào)用 SetAbort。如果 Inventory 對(duì)象沒(méi)有返回錯(cuò)誤代碼,將會(huì)調(diào)用 SetComplete 處理銷售請(qǐng)求。
Sales.htm
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<TITLE>Sales Order</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF"><FONT FACE="ARIAL,HELVETICA">
<H2>Sales Order Form </H2>
<FORM METHOD=POST ACTION="SalesVerify.asp">
<P>Please enter the product code, quantity, and your account number.
<INPUT TYPE=TEXT NAME=QuantityToBuy>
<INPUT TYPE=TEXT NAME=ProductCode>
<INPUT TYPE=TEXT NAME=AccountIn>
<P>
<INPUT TYPE=SUBMIT>
</FONT>
</BODY>
</HTML>
SalesVerify.asp 文件
<%@ Transaction = Required %>
<%
Set CurrentQOH = Server.CreateObject("Mycomp.Inventory")
Set CurrentSales = Server.CreateObject("Mycomp.Sales")
CheckQuantity = Request("QuantityToBuy")
CheckProduct = Request("ProductCode")
QuantityStatus = CurrentQOH.CheckQOH(CheckQuantity,CheckProduct)
If QuantityStatus = None
ObjectContext.SetAbort
Response.Write "Sorry, there is not sufficient quantity on hand to process your sale."
Else
ObjectContext.SetComplete
Account = Request("AccountIn")
Saleupdate = CurrentSales.PostIt(AccountIn)
End If
%>
您可以使用 ObjectContext 對(duì)象提交或放棄一項(xiàng)由 Microsoft Transaction Server (MTS) 管理的事務(wù),它由 ASP 頁(yè)包含的腳本初始化。
ASP 包含 @TRANSACTION 指令時(shí),該頁(yè)會(huì)在事務(wù)中運(yùn)行,直到事務(wù)成功或失敗后才會(huì)終止。
語(yǔ)法
ObjectContext.method
方法
SetComplete SetComplete 方法聲明腳本不了解事務(wù)未完成的原因。如果事務(wù)中的所有組件都調(diào)用 SetComplete,事務(wù)將完成。
SetAbort SetAbort 方法聲明被腳本初始化的事務(wù)未完成,無(wú)法更新源。
事件
OnTransactionCommit
OnTransactionAbort
注釋
ObjectContext 實(shí)現(xiàn) MTS ObjectContext 對(duì)象的兩種方法。 SetAbort 方法完全終止事務(wù)。這樣,MTS 不更新在第一階段聯(lián)系的源。事務(wù)終止時(shí),將處理腳本的 OnTransactionAbort 事件。
調(diào)用 SetComplete 方法并不一定意味著事務(wù)已完成。只有腳本調(diào)用的所有事務(wù)組件都調(diào)用了 SetComplete,事務(wù)才能完成。在大多數(shù)實(shí)例中,如果結(jié)束處理時(shí)未調(diào)用 SetAbort,腳本通常被假定為完成的,所以不一定要在腳本內(nèi)調(diào)用 SetComplete。
ObjectContext 展示了 SetAbort 和 SetComplete 以外的六種方法。這些方法可用于腳本調(diào)用的組件,但不能直接用于 ASP 腳本。
示例
這里示范使用 SetAbort 和 SetCommit 的方法。Sales.htm 文件獲取處理銷售請(qǐng)求所需的數(shù)據(jù)。第二個(gè)文件——SalesVerify.asp 中的腳本使用兩個(gè)對(duì)象——Inventory 和 Sales 處理銷售。如果 Inventory 返回了錯(cuò)誤代碼表示供銷售的存貨不足,就會(huì)調(diào)用 SetAbort。如果 Inventory 對(duì)象沒(méi)有返回錯(cuò)誤代碼,將會(huì)調(diào)用 SetComplete 處理銷售請(qǐng)求。
Sales.htm
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<TITLE>Sales Order</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF"><FONT FACE="ARIAL,HELVETICA">
<H2>Sales Order Form </H2>
<FORM METHOD=POST ACTION="SalesVerify.asp">
<P>Please enter the product code, quantity, and your account number.
<INPUT TYPE=TEXT NAME=QuantityToBuy>
<INPUT TYPE=TEXT NAME=ProductCode>
<INPUT TYPE=TEXT NAME=AccountIn>
<P>
<INPUT TYPE=SUBMIT>
</FONT>
</BODY>
</HTML>
SalesVerify.asp 文件
<%@ Transaction = Required %>
<%
Set CurrentQOH = Server.CreateObject("Mycomp.Inventory")
Set CurrentSales = Server.CreateObject("Mycomp.Sales")
CheckQuantity = Request("QuantityToBuy")
CheckProduct = Request("ProductCode")
QuantityStatus = CurrentQOH.CheckQOH(CheckQuantity,CheckProduct)
If QuantityStatus = None
ObjectContext.SetAbort
Response.Write "Sorry, there is not sufficient quantity on hand to process your sale."
Else
ObjectContext.SetComplete
Account = Request("AccountIn")
Saleupdate = CurrentSales.PostIt(AccountIn)
End If
%>
您可能感興趣的文章:
- Asp.net Core 3.1基于AspectCore實(shí)現(xiàn)AOP實(shí)現(xiàn)事務(wù)、緩存攔截器功能
- 解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問(wèn)題
- 使用keras框架cnn+ctc_loss識(shí)別不定長(zhǎng)字符圖片操作
- Asp.Net Core輕量級(jí)Aop解決方案:AspectCore
- Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket
- IOS ObjectC與javascript交互詳解及實(shí)現(xiàn)代碼
- python實(shí)現(xiàn)CTC以及案例講解
相關(guān)文章
判斷Session的過(guò)期時(shí)間 采用JavaScript實(shí)時(shí)顯示剩余多少秒
判斷Session的過(guò)期時(shí)間-采用JavaScript顯示剩余多少秒2008-12-12用asp腳本實(shí)現(xiàn)限制IP訪問(wèn)
用asp腳本實(shí)現(xiàn)限制IP訪問(wèn)...2007-06-06asp 動(dòng)態(tài)數(shù)組 提供Add、Insert、Remove、RemoveAt、Search等方法。
asp動(dòng)態(tài)數(shù)組,提供Add、Insert、Remove、RemoveAt、Search等方法??梢栽跀?shù)組中存儲(chǔ)對(duì)象不考慮效率問(wèn)題2009-10-10ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對(duì)的實(shí)現(xiàn)代碼
這篇文章主要介紹了ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對(duì)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2020-09-09ASP中if語(yǔ)句、select 、while循環(huán)的使用方法
這篇文章主要介紹了ASP中if語(yǔ)句、select 、while循環(huán)的使用方法,需要的朋友可以參考下2015-11-11ASP 處理JSON數(shù)據(jù)的實(shí)現(xiàn)代碼
今天看網(wǎng)頁(yè)才發(fā)現(xiàn)了ASP也能處理JSON數(shù)據(jù)?呵呵,剛才論壇上看到一個(gè)兄弟寫的文章,沒(méi)有測(cè)試,不過(guò)理論上一定是可以的,之前腳本之家小編也發(fā)過(guò)類似的文章都可以看下2017-07-07