Transakcja: jak transakcje wpływają na aktualizacje (ODBC)

Aktualizacje źródła danych są zarządzane podczas transakcji przy użyciu buforu edycji (ta sama metoda używana poza transakcjami). Dane w polach zestawu rekordów wspólnie pełnią rolę buforu edycji zawierającego bieżący rekord, który zestaw rekordów przechowuje tymczasowo podczas elementu AddNew lub Edit. Delete Podczas operacji bieżący rekord nie jest kopii zapasowej w ramach transakcji. Aby uzyskać więcej informacji na temat buforu edycji i sposobu przechowywania bieżącego rekordu przez aktualizacje, zobacz Zestaw rekordów: Jak zestawy rekordów aktualizują rekordy (ODBC).

Uwaga

Jeśli zaimplementowano pobieranie wierszy zbiorczych, nie można wywołać metod AddNew, Edit lub Delete. Zamiast tego należy napisać własne funkcje, aby wykonywać aktualizacje źródła danych. Aby uzyskać więcej informacji na temat zbiorczego pobierania wierszy, zobacz Zestaw rekordów: pobieranie rekordów zbiorczo (ODBC).

Podczas transakcji operacje AddNew, Editi Delete mogą zostać zatwierdzone lub wycofane. Skutki CommitTrans i Rollback mogą spowodować, że bieżący rekord nie zostanie przywrócony do buforu edycji. Aby upewnić się, że bieżący rekord jest prawidłowo przywrócony, ważne jest zrozumienie, jak funkcje składowe CommitTrans i Rollback współpracują z funkcjami aktualizacji CRecordset.

Jak commitTrans wpływa na aktualizacje

W poniższej tabeli wyjaśniono wpływ CommitTrans na transakcje.

Jak commitTrans wpływa na aktualizacje

Operacja Stan źródła danych
AddNew i Update, a następnie CommitTrans Nowy rekord jest dodawany do źródła danych.
AddNew (bez Update), a następnie CommitTrans Nowy rekord zostanie utracony. Rekord nie został dodany do źródła danych.
Edit i Update, a następnie CommitTrans Edytuje wprowadzone w źródle danych.
Edit (bez Update), a następnie CommitTrans Zmiany w rekordzie zostaną utracone. Rekord pozostaje niezmieniony w źródle danych.
Delete następnie CommitTrans Rekordy usunięte ze źródła danych.

Jak operacja wycofywania wpływa na transakcje

W poniższej tabeli wyjaśniono wpływ Rollback na transakcje.

Jak cofnięcie transakcji wpływa na transakcje

Operacja Stan bieżącego rekordu Musisz również Stan źródła danych
AddNew i Update, a następnie Rollback Zawartość bieżącego rekordu jest przechowywana tymczasowo, aby zapewnić miejsce na nowy rekord. Nowy rekord jest wprowadzany do buforu edycji. Po Update wywołaniu bieżący rekord zostanie przywrócony do buforu edycji. Dodatek do źródła danych dokonany przez Update został cofnięty.
AddNew (bez Update), a następnie Rollback Zawartość bieżącego rekordu jest przechowywana tymczasowo, aby zapewnić miejsce na nowy rekord. Bufor edycji zawiera nowy rekord. Wywołaj ponownie AddNew, aby przywrócić bufor edycji do pustego, nowego rekordu. Możesz też wywołać metodę Move(0), aby przywrócić stare wartości do buforu edycji. Ponieważ nie wywołano Update, nie wprowadzono żadnych zmian w źródle danych.
Edit i Update, a następnie Rollback Nieedytowana wersja bieżącego rekordu jest tymczasowo przechowywana. Zmiany są wprowadzane do zawartości buforu edycji. Po Update wywołaniu nieedytowana wersja rekordu jest nadal tymczasowo przechowywana. Dynaset: Przewiń poza bieżący rekord, a następnie wróć, aby przywrócić niezmienioną wersję rekordu do bufora edycji.

Migawka: wywołaj metodę Requery , aby odświeżyć zestaw rekordów ze źródła danych.
Zmiany w źródle danych dokonane przez Update są odwracane.
Edit (bez Update), a następnie Rollback Nieedytowana wersja bieżącego rekordu jest tymczasowo przechowywana. Zmiany są wprowadzane do zawartości buforu edycji. Ponownie wywołaj metodę Edit , aby przywrócić nieedytowaną wersję rekordu do buforu edycji. Ponieważ nie wywołano Update, nie wprowadzono żadnych zmian w źródle danych.
Delete następnie Rollback Zawartość bieżącego rekordu jest usuwana. Wywołaj metodę Requery , aby przywrócić zawartość bieżącego rekordu ze źródła danych. Usunięcie danych ze źródła danych jest odwracane.

Zobacz też

Transakcja (ODBC)
Transakcja: wykonywanie transakcji w zestawie rekordów (ODBC)
Klasa CDatabase
Klasa CRecordset