Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASP - Объект ObjectContext

Объект ObjectContext

Объект ObjectContext можно использовать для завершения или прерывания транзакции, управляемой службой компонентов и инициированной сценарием на ASP-странице.

Когда файл .asp содержит директиву @TRANSACTION, страница выполняется в транзакции и не заканчивает обработку до успешного или неудачного завершения транзакции.

Синтаксис

ObjectContext.метод

 

Методы

SetAbort Метод SetAbort объявляет, что транзакция, инициированная сценарием, не завершена и ресурсы не должны быть обновлены.
SetComplete Метод SetComplete объявляет, что сценарий не видит причин, по которым транзакция не может быть завершена. Если все компоненты, участвующие в транзакции, также вызывают SetComplete, транзакция будет завершена.

События

OnTransactionAbort
OnTransactionCommit

Замечания

ObjectContext реализует два метода объекта COM ObjectContext. Метод SetAbort явно прерывает транзакцию. Это не позволит службе компонентов внести любые изменения в ресурсы, к которым обращались в течение первой фазы транзакции. Когда транзакция прерывается, будет обработано событие сценария OnTransactionAbort.

Вызов метода SetComplete не означает, что транзакция обязательно завершена. Транзакция будет завершена, если все компоненты транзакции, вызванные сценарием, вызовут метод SetComplete. В большинстве случаев нет необходимости вызывать SetComplete из сценария, так как сценарий считается завершенным, если он закончил работу без вызова SetAbort.

ObjectContext предоставляет методы в дополнение к SetAbort и SetComplete. Эти другие методы недоступны для сценариев в ASP-сценарии; однако они доступны компонентам, вызываемым сценарием.

Пример

Приведенный ниже пример использует методы SetAbort и SetComplete. Файл Sales.htm получает данные, необходимые для обработки запроса на продажу. Второй файл (SalesVerify.asp) содержит сценарий, использующий для обработки продаж два объекта: Inventory и Sales. SetAbort вызывается, если Inventory возвращает код ошибки, свидетельствующий о недостаточном количестве товара на складе для обработки продажи. Если объект Inventory не возвращает код ошибки, вызывается SetComplete и продажа обрабатывается.

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

%>

Дополнительные сведения см. в разделе Представление о транзакциях.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог