Partager via


IObjectContext ::D isableCommit, méthode (comsvcs.h)

Déclare que les mises à jour transactionnelles de l’objet sont dans un état incohérent et ne peuvent pas être validées dans leur état actuel.

Syntaxe

HRESULT DisableCommit();

Valeur de retour

Cette méthode peut retourner les valeurs suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée. Les mises à jour transactionnelles de l’objet ne peuvent pas être validées tant que l’objet n’appelle pas EnableCommit ou SetComplete.
E_UNEXPECTED
Une erreur inattendue s’est produite. Cela peut se produire si un objet passe son pointeur IObjectContext à un autre objet et si l’autre objet appelle DisableCommit à l’aide de ce pointeur. Un pointeur IObjectContext n’est pas valide en dehors du contexte de l’objet qui l’a obtenu à l’origine.
CONTEXT_E_NOCONTEXT
Aucun contexte n’est associé à l’objet actuel. Cela est probablement dû au fait qu’il n’a pas été créé avec l’une des méthodes COM+ CreateInstance.

Remarques

Vous pouvez utiliser la méthode DisableCommit pour empêcher une transaction de valider prématurément entre des appels de méthode dans un objet avec état. Lorsqu’un objet appelle DisableCommit, il indique que son travail est incohérent et qu’il ne peut pas terminer son travail tant qu’il n’a pas reçu d’autres appels de méthode du client. Il indique également qu’il doit conserver son état pour effectuer ce travail. Cela empêche COM+ de désactiver l’objet et de récupérer ses ressources au retour d’un appel de méthode. Lorsqu’un objet a appelé DisableCommit, si un client tente de valider la transaction avant que l’objet ait appelé EnableCommit ou SetComplete, la transaction est abandonnée.

Par exemple, supposons que vous ayez un composant GeneralLedger qui met à jour une base de données. Un client effectue plusieurs appels à un objet GeneralLedger pour publier des entrées sur différents comptes. Il existe une contrainte d’intégrité qui indique que les débits doivent être égaux aux crédits lorsque l’appel de la méthode finale est retourné, ou que la transaction doit abandonner. L’objet GeneralLedger a une méthode d’initialisation dans laquelle le client l’informe de la séquence d’appels que le client va effectuer, et l’objet GeneralLedger appelle DisableCommit. L’objet conserve son état entre les appels de sorte que, une fois l’appel final dans la séquence effectué, l’objet peut s’assurer que la contrainte d’intégrité est satisfaite avant d’autoriser la validation de son travail.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête comsvcs.h

Voir aussi

IObjectContext