Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Transakcja jest sposobem grupowania lub wsadowego serii aktualizacji źródła danych, tak aby wszystkie wszystkie zakończyły się powodzeniem i zostały zatwierdzone jednocześnie lub (jeśli którykolwiek z nich zakończy się niepowodzeniem) żadna z nich nie zostanie zatwierdzona, a cała transakcja zostanie wycofana. Ten proces zapewnia integralność wyniku źródła danych.
Ole DB obsługuje transakcje z następującymi trzema metodami:
Relacja sesji i transakcji
Pojedynczy obiekt źródła danych może utworzyć co najmniej jeden obiekt sesji, z których każdy może znajdować się wewnątrz lub poza zakresem transakcji w danym momencie.
Gdy sesja nie wprowadza transakcji, wszystkie prace wykonywane w ramach tej sesji w magazynie danych są natychmiast zatwierdzane w każdym wywołaniu metody. (Czasami jest to określane jako tryb autopotwierdzeń lub tryb niejawny).
Gdy sesja wchodzi w transakcję, wszystkie prace wykonywane w ramach tej sesji w magazynie danych są częścią tej transakcji i są zatwierdzane lub przerywane jako pojedyncza jednostka. (Czasami jest to nazywane trybem zatwierdzania ręcznego).
Obsługa transakcji jest specyficzna dla dostawcy. Jeśli używany dostawca obsługuje transakcje, obiekt sesji, który obsługuje ITransaction i ITransactionLocal może wprowadzić transakcję (bez zagnieżdżenia). Klasa CSession szablonów OLE DB obsługuje te interfejsy i jest zalecanym sposobem implementacji obsługi transakcji w języku Visual C++.
Uruchamianie i kończenie transakcji
Metody , Commiti Abort są wywoływane StartTransactionw obiekcie zestawu wierszy w odbiorcy.
Wywołanie ITransactionLocal::StartTransaction powoduje uruchomienie nowej transakcji lokalnej. Po rozpoczęciu transakcji wszelkie zmiany wymagane przez późniejsze operacje nie są stosowane do magazynu danych do momentu zatwierdzenia transakcji.
Wywołanie ITransaction::Commit lub ITransaction::Abort zakończenie transakcji. Commit powoduje, że wszystkie zmiany w zakresie transakcji mają być stosowane do magazynu danych. Abort powoduje, że wszystkie zmiany w zakresie transakcji zostaną anulowane, a magazyn danych pozostanie w stanie, który miał przed rozpoczęciem transakcji.
Transakcje zagnieżdżone
Transakcja zagnieżdżona występuje po rozpoczęciu nowej transakcji lokalnej, gdy aktywna transakcja już istnieje w sesji. Nowa transakcja jest uruchamiana jako zagnieżdżona transakcja poniżej bieżącej transakcji. Jeśli dostawca nie obsługuje zagnieżdżonych transakcji, wywołanie wywołania StartTransaction , gdy w sesji jest już aktywna transakcja, zwraca XACT_E_XTIONEXISTS.
Transakcje rozproszone
Transakcja rozproszona to transakcja, która aktualizuje rozproszone dane; oznacza to, że dane dotyczące więcej niż jednego sieciowego systemu komputerowego. Jeśli chcesz obsługiwać transakcje w systemie rozproszonym, należy użyć programu .NET Framework, a nie obsługi transakcji OLE DB.