L'objet ObjectContext correspond en quelque sorte à un objet racine autour duquel s'articulent les objets intrinsèques comme Response, Request, Application, Session, Server et ASPError ainsi que tout objet COM (Component Object Model) créé pour des besoins spécifiques.

ObjectContext est un objet COM fournissant un accès aux propriétés d'exécution incluses dans le contexte d'un objet.

Si un objet fait référence à ObjectContext, il aura la possibilité d'accéder aux valeurs des collections Request, Response, Application et Session.

L'objet ObjectContext permet de gérer des transactions initialisées par un script ASP.

ObjectContext.méthode

Les méthodes de ObjectContext permettent de valider (SetCommit) ou d'abandonner (setAbort) une transaction en cours.

Les événements OnTransactionAbort et OnTransactionCommit se produisent lorsque l'événement lié intervient, respectivement, l'abandon ou la validation d'une transaction.

La mise en oeuvre de ces commandes s'effectue par l'intermédiaire d'une procédure chargée de capter l'événement.

Sub OnTransactionAbort | OnTransactionCommit
  Instructions...
end sub

<%@ LANGUAGE="VBScript" TRANSACTION=Required %>
<%
  ObjectContext.SetAbort
  Sub OnTransactionAbort
    Response.Write "<h2>La transaction a été abandonnée</h2>." 
  end sub
%>

<%@ LANGUAGE="VBScript" TRANSACTION=Required %>
<%
  ObjectContext.SetComplete
  Sub OnTransactionCommit
    Response.Write "<h2>La transaction a été accomplie avec succès</h2>." 
  end sub
%>

Par ailleurs, la directive @TRANSACTION doit toujours accompagner l'objet ObjectContext en s'inscrivant au sommet de la page concernée.

<%@ LANGUAGE="VBScript" TRANSACTION=Required %>

Cette instruction spécifique indique que le script doit être traité conformément à une transaction afin que les Services Composants du serveur agissent en conséquence.

Les Méthodes
Méthode
Description
SetAbort
indique que la transaction initiée par le script n'a pas été menée à son terme et que les ressources ne doivent pas être mises à jour.
SetComplete
indique que la transaction initialisée par le script peut être validée.
Les Evènements
Evénement
Description
OnTransactionAbort
se produit si la transaction est abandonnée.
OnTransactionCommit
se produit lorsque la transaction a été validée.
Exemple
<%@ LANGUAGE=VBScript TRANSACTION=Required %>
<%
  Dim obj_Transfert
  Dim Transfert_Montant
  Dim Num_Compte_origine
  Dim Num_Compte_Destinataire

  ' Récupération des informations à partir du
' formulaire initial de demande de transfert de Compte
.
Transfert_Montant = Request.QueryString("Montant")
Num_Compte_origine = Request.QueryString("NumCmptOri")
Num_Compte_Destinataire = Request.QueryString("NumCmptDest")
' Création de l'objet COM+ utilisé pour les transferts
' transfert.dll se trouve dans un répertoire ex: c:\banque\transfert\.
' Auparavant transfert.dll est enregistré par regsvr32.exe.
' ex: c:\winnt\system32\regsvr32.exe c:\banque\transfert\tranfert.dll.

Set obj_Transfert = Server.CreateObject("transfert.AcctTransfer") ' Déduction de la somme en utilisant la méthode Retrait. If obj_Transfert.Retrait(CInt(Num_Compte_origine), _ CInt(Transfert_Montant)) <> 0 Then ' Annulation de la transaction si le retrait a échoué. ObjectContext.SetAbort ' Si le retrait réussi, alors la somme est déposée sur le compte
' destinataire en utilisant la méthode Depot.
Response.Write "Abandon de la procédure de retrait !" Elseif obj_Transfert.Depot(CInt(Num_Compte_Destinataire), _ CInt(Transfert_Montant)) <> 0 Then ' Annulation de la transaction si le dépot a échoué. ObjectContext.SetAbort Response.Write "Abandon de la procédure de dépot !" Else ' Terminer la transaction lorsque le retrait et le dépot ont réussi. ObjectContext.SetComplete Response.Write "Réussite de la procédure !" End If Set Transfert_Montant = Nothing %>