明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

asp內(nèi)置對(duì)象 ObjectContext詳細(xì)說明

[摘要]您可以使用 ObjectContext 對(duì)象提交或放棄一項(xiàng)由 Microsoft Transaction Server (MTS) 管理的事務(wù),它由 ASP 頁(yè)包含的腳本初始化。 ASP 包含 @TRANSACTION 指令時(shí),該頁(yè)會(huì)在事務(wù)中運(yùn)行,直到事務(wù)成功或失敗后才會(huì)終止。 語(yǔ)法ObjectC...

您可以使用 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ù)未完成,無法更新源。

事件
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ì)象沒有返回錯(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
%>