當(dāng)前位置: 首頁IT技術(shù) → 關(guān)于ASP內(nèi)置對(duì)象ObjectContext的詳細(xì)說明

關(guān)于ASP內(nèi)置對(duì)象ObjectContext的詳細(xì)說明

更多

這篇文章給大家分享學(xué)習(xí)的是關(guān)于ASP內(nèi)置對(duì)象ObjectContext詳解,希望對(duì)初學(xué)ASP的朋友們能夠帶來幫助。

您可以使用 ObjectContext 對(duì)象提交或放棄一項(xiàng)由 microsoft Transaction Server (MTS) 管理的事務(wù),它由 ASP 頁包含的腳本初始化。
  
  ASP 包含 @TRANSACTION 指令時(shí),該頁會(huì)在事務(wù)中運(yùn)行,直到事務(wù)成功或失敗后才會(huì)終止。
  
  語法
  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
  %>

熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)