Transactions implicites d'API

Vous pouvez spécifier une transaction implicite à l'aide des fonctionnalités des interfaces de programmation d'application (API) OLE DB et ODBC.

OLE DB

OLE DB ne propose pas de méthode spécifique pour activer le mode de transaction implicite.

  • Appelez la méthode ITransactionLocal::StartTransaction pour démarrer une transaction explicite.

  • Lorsque vous appelez la méthode ITransaction::Commit ou ITransaction::Abort en affectant la valeur TRUE au paramètre fRetaining, OLE DB termine la transaction en cours et passe en mode de transaction implicite. La connexion reste en mode de transaction implicite tant que le paramètre fRetaining a la valeur TRUE dans la méthode ITransaction::Commit ou ITransaction::Abort.

  • Appelez la méthode ITransaction::Commit ou ITransaction::Abort en affectant la valeur FALSE au paramètre fRetaining pour arrêter le mode de transaction implicite.

ODBC

  • Appelez la fonction SQLSetConnectAttr en affectant la valeur SQL_ATTR_AUTOCOMMIT au paramètre Attribute et la valeur SQL_AUTOCOMMIT_OFF au paramètre ValuePtr pour démarrer le mode de transaction implicite.

  • La connexion continue à fonctionner en mode de transaction implicite jusqu'à l'appel de la fonction SQLSetConnectAttr avec la valeur SQL_ATTR_AUTOCOMMIT pour le paramètre Attribute et la valeur SQL_AUTOCOMMIT_ON pour le paramètre ValuePtr.

  • Appelez la fonction SQLEndTran en affectant la valeur SQL_COMMIT ou SQL_ROLLBACK au paramètre CompletionType pour valider ou restaurer chaque transaction.

  • Lorsque SQL_AUTOCOMMIT_OFF est défini par une application ODBC, le pilote ODBC de SQL Server génère une instruction SET IMPLICIT_TRANSACTION ON.

ADO

ADO ne prend pas en charge les transactions implicites. Les applications ADO utilisent le mode de transaction autocommit ou le mode de transaction explicite.