Udostępnij za pośrednictwem


Wspieranie transakcji w OLE DB

A transakcji jest sposobem grupy lub partii, serii aktualizacje do źródła danych, tak że albo wszystkie poprawne i są zobowiązane na raz (Jeżeli którekolwiek z nich zawiedzie) nie dotyczy, są zobowiązane i cała transakcja jest przywracana.Ten proces zapewnia integralność wynik w źródle danych.

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

Relacja sesji i transakcji

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

Podczas sesji nie wprowadzania transakcji, na każde wywołanie metody zobowiązana jest niezwłocznie wszystkie prace tej sesji w magazynie danych.(To jest czasami zwane PHP lub tryb niejawny.)

Podczas wprowadzania transakcji sesji, wszystkie prace tej sesji w magazynie danych jest częścią tej transakcji i jest zatwierdzeniu lub przerwaniu jako pojedyncza jednostka.(To jest czasami zwane tryb ręczny commit.)

Obsługa transakcji jest specyficzny dla dostawcy.Jeśli dostawca używasz obsługuje transakcje, obiekt session, który obsługuje ITransaction i ITransactonLocal można wprowadzić prosty (to znaczy-zagnieżdżone) transakcji.Klasa OLE DB szablony CSession obsługuje tych interfejsów i jest zalecanym sposobem zaimplementowania obsługę transakcji w Visual C++.

Początkowa i końcowa transakcji

Wywołania StartTransaction, Commit, i przerwanie metody obiektu zestawu wierszy w konsumenta.

Wywołanie ITransactionLocal::StartTransaction rozpoczyna nową transakcję lokalnych.Podczas uruchamiania transakcji upoważnienia kolejnych operacji zmiany nie są faktycznie stosowane do magazynu danych do momentu zatwierdzenia transakcji.

Wywołanie metody ITransaction::Commit lub ITransaction::Abort kończy się transakcja.Zatwierdź powoduje, że wszystkie zmiany w zakresie transakcji, które mają być stosowane do magazynu danych.Przerwać powoduje, że wszystkie zmiany w zakresie transakcji do anulowania i Magazyn danych jest pozostawiony w stanie miał przed rozpoczęciem transakcji.

Transakcji zagnieżdżonych

A transakcji zagnieżdżonych podczas uruchamiania nowych transakcji lokalnej podczas aktywnej transakcji już istnieje w sesji.Nowa transakcja jest uruchamiany jako zagnieżdżoną poniżej bieżącej transakcji.Jeśli dostawca nie obsługuje zagnieżdżonych transakcji, wywołanie StartTransaction jest już aktywny transakcji na sesję zwraca XACT_E_XTIONEXISTS.

Transakcje rozproszone

Transakcja rozproszona jest transakcja, która aktualizuje dane rozproszone; oznacza to, że dane na więcej niż jednego systemu na komputerze sieciowym.Do obsługi transakcji za pośrednictwem systemu rozproszonego, należy użyć.NET Framework zamiast obsługę transakcji OLE DB.

Zobacz też

Koncepcje

Za pomocą akcesorów