Udostępnij za pośrednictwem


Obsługa transakcji w OLE DB

A transakcji jest sposobem grupy lub partia, serię aktualizacje ze źródłem danych tak, że albo wszystkie odnieść sukces i są zobowiązane na raz (jeśli jeden z nich kończy się niepowodzeniem) żaden nie jest zobowiązana, a cała transakcja jest cofana.Ten proces zapewnia spójność wyników w źródle danych.

OLE DB obsługuje transakcje z trzech następujących metod:

Relacje między sesjami i transakcji

Obiekt źródła danych pojedynczy można utworzyć jeden lub więcej obiektów sesji, z których każdy może być wewnątrz lub na zewnątrz zakres transakcji w danym momencie.

Podczas sesji nie wprowadzania transakcji, na każde wywołanie metody zobowiązuje się niezwłocznie wszystkie pracy wykonanej z tej sesji w magazynie danych. (Czasami nazywa się jako tryb automatycznego zatwierdzania lub trybie niejawna.)

Podczas sesji wprowadzania transakcji, wszystkie pracy wykonanej z tej sesji w magazynie danych jest częścią tej transakcji i jest zatwierdzeniu lub przerwaniu jako pojedynczą jednostkę. (Czasami nazywa się jako tryb ręczny zatwierdzanie.)

Obsługa transakcji jest specyficznym dla dostawcy.Jeśli używasz dostawca obsługuje transakcje, obiekt session, który obsługuje ITransaction i ITransactonLocal można wprowadzić prosty (czyli zagnieżdżone) transakcji.Klasa szablonów OLE DB CSession obsługuje tych interfejsów i jest zalecanym sposobem realizowania obsługi transakcji w programie Visual C++.

Początkowa i końcowa transakcji

Wywołania StartTransaction, popełnienia, i przerwać metodach obiektu zestawu wierszy w konsumenta.

Wywołanie ITransactionLocal::StartTransaction rozpoczyna się nowych transakcji lokalnej.Po rozpoczęciu transakcji nakazanych kolejnych operacji zmiany nie są faktycznie stosowane do magazynu danych aż do zatwierdzenia transakcji.

Wywołanie metody ITransaction::Commit lub ITransaction::Abort kończy transakcję.Zatwierdzanie powoduje, że wszystkie zmiany w zakresie transakcji, które mają być stosowane do magazynu danych.Przerwać powoduje, że wszystkie zmiany w zakresie transakcji zostać anulowane, a Magazyn danych jest pozostawiane w stanie go miał przed rozpoczęciem transakcji.

Transakcji zagnieżdżonych

A transakcji zagnieżdżonych po uruchomieniu nowych transakcji lokalnej, gdy istnieje już aktywnej transakcji w sesji.Nowa transakcja została uruchomiona jako transakcja zagnieżdżone poniżej bieżącej transakcji.Jeśli dostawca nie obsługuje transakcji zagnieżdżonych, wzywając StartTransaction gdy istnieje już aktywnej transakcji na sesję zwraca XACT_E_XTIONEXISTS.

Transakcje rozproszone

Transakcja rozproszona jest transakcja, która aktualizuje dane rozproszone; oznacza to, że dane w więcej niż jednym systemie komputera w sieci.Jeśli chcesz obsługiwać transakcji przez system rozproszony, należy użyć.NET Framework, a nie na obsługę transakcji OLE DB.

Zobacz też

Koncepcje

Korzystanie z metod dostępu