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.