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 |
---|---|
|
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. |
|
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. |
|
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 |