asp內置對象ObjectContext詳解
您可以使用ObjectContext對象提交或放棄一項由MicrosoftTransactionServer(MTS)管理的事務,它由ASP頁包含的腳本初始化。
ASP包含@TRANSACTION指令時,該頁會在事務中運行,直到事務成功或失敗後才會終止。
文法
ObjectContext.method
方法
SetCompleteSetComplete方法聲明腳本不了解事務未完成的原因。如果事務中的所有組件都調用SetComplete,事務將完成。
SetAbortSetAbort方法聲明被腳本初始化的事務未完成,無法更新源。
事件
OnTransactionCommit
OnTransactionAbort
註釋
ObjectContext實現MTSObjectContext對象的兩種方法。 SetAbort方法完全終止事務。這樣,MTS不更新在第一階段聯繫的源。事務終止時,將處理腳本的OnTransactionAbort事件。
調用SetComplete方法並不一定意味著事務已完成。只有腳本調用的所有事務組件都調用了SetComplete,事務才能完成。在大多數實例中,如果結束處理時未調用SetAbort,腳本通常被假定為完成的,所以不一定要在腳本內調用SetComplete。
ObjectContext展示了SetAbort和SetComplete以外的六種方法。這些方法可用於腳本調用的組件,但不能直接用於ASP腳本。
示例
這裡示範使用SetAbort和SetCommit的方法。 Sales.htm文件獲取處理銷售請求所需的數據。第二個文件——SalesVerify.asp中的腳本使用兩個對象——Inventory和Sales處理銷售。如果Inventory返回了錯誤代碼表示供銷售的存貨不足,就會調用SetAbort。如果Inventory對像沒有返回錯誤代碼,將會調用SetComplete處理銷售請求。
Sales.htm
<!DOCTYPEHTMLPUBLIC"-//IETF//DTDHTML//EN">
<HTML>
<HEAD>
<TITLE>SalesOrder</TITLE>
</HEAD>
<BODYBGCOLOR="#FFFFFF"><FONTFACE="ARIAL,HELVETICA">
<H2>SalesOrderForm</H2>
<FORMMETHOD=POSTACTION="SalesVerify.asp">
<P>Pleaseentertheproductcode,quantity,andyouraccountnumber.
<INPUTTYPE=TEXTNAME=QuantityToBuy>
<INPUTTYPE=TEXTNAME=ProductCode>
<INPUTTYPE=TEXTNAME=AccountIn>
<P>
<INPUTTYPE=SUBMIT>
</FONT>
</BODY>
</HTML>
SalesVerify.asp文件
<%@Transaction=Required%>