Partager via


Transactions dans ODBC

Les transactions dans ODBC sont gérées au niveau de la connexion. Lorsqu’une application termine une transaction, elle valide ou restaure tout le travail effectué via tous les handles d’instruction sur cette connexion. Pour valider ou restaurer une transaction, les applications doivent appeler SQLEndTran au lieu d’envoyer une instruction COMMIT ou ROLLBACK.

Une application appelle SQLSetConnectAttr pour basculer entre les deux modes ODBC de gestion des transactions :

  • Mode de validation automatique

    Chaque instruction est automatiquement validée lorsqu’elle est terminée avec succès. Lorsque vous exécutez en mode de validation automatique, aucune autre fonction de gestion des transactions n’est requise.

  • Mode de validation manuelle

    Toutes les instructions exécutées sont incluses dans la même transaction jusqu’à ce qu’elle soit spécifiquement arrêtée en appelant SQLEndTran.

Le mode de validation automatique est le mode de transaction par défaut pour ODBC. Lorsqu’une connexion est établie, elle est en mode de validation automatique jusqu’à ce que SQLSetConnectAttr soit appelé pour basculer vers le mode de validation manuelle en définissant le mode de validation automatique désactivé. Lorsqu’une application désactive la validation automatique, l’instruction suivante envoyée à la base de données démarre une transaction. La transaction reste alors en vigueur jusqu’à ce que l’application appelle SQLEndTran avec les options SQL_COMMIT ou SQL_ROLLBACK. Commande envoyée à la base de données après que SQLEndTran démarre la transaction suivante.

Si une application passe de la validation manuelle au mode de validation automatique, le pilote valide toutes les transactions actuellement ouvertes sur la connexion.

Les applications ODBC ne doivent pas utiliser Transact-SQL instructions transactionnelles telles que BEGIN TRANSACTION, COMMIT TRANSACTION ou ROLLBACK TRANSACTION, car cela peut entraîner un comportement indéterminé dans le pilote. Une application ODBC doit s’exécuter en mode de validation automatique et n’utiliser aucune fonction ou instruction de gestion des transactions, ou s’exécuter en mode de validation manuelle et utiliser la fonction ODBC SQLEndTran pour valider ou restaurer des transactions.

Voir aussi

Exécution de transactions (ODBC)