ITransactionDispenser::BeginTransaction

Prototypes

HRESULT ITransactionDispenser::BeginTransaction(IUnknown punkOuter, ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppTransaction);

Description

Débute un nouvelle transaction pour le gestionnaire de transactions courant.

Cette Application Program Interface (API) est utilisée par le moniteur transactionnel pour piloter le gestionnaire de ressources.

Le handle de la transaction est rangé dans le paramètre ppTransaction. La transaction est terminée par destruction du handle.

Le niveau d'isolation de la transaction est donné par isoLevel et isoFlags.

Le résultat est S_OK en cas de succès.

Exemple

#include <transact.h>
#include <txdtc.h>
#include <xolehlp.h>

static ITransactionDispenser *pITransactionDispenser;
static SQLHDBC hConnexion;
static ITransaction *pITransaction;

...
if (pITransactionDispenser->BeginTransaction(NULL, ISOLATIONLEVEL_ISOLATED, ISOFLAG_RETAIN_DONTCARE, NULL, &pITransaction)!=S_OK) ...
pTransaction->AddRef();
...
if (SQLSetConnectAttr(hConnexion, SQL_COPT_SS_ENLIST_IN_DTC, (SQLPOINTER)pITransation, SQL_NTS)!=SQL_SUCCESS) ...
SQLSetConnectAttr(hConnexion, SQL_COPT_SS_ENLIST_IN_DTC, (SQLPOINTER)SQL_DTC_DONE, SQL_NTS);
...
pTransaction->Release();
...

Voir aussi

SQLSetConnectAttr pour associer la transaction à la connexion.