Transakce: Vliv transakcí na aktualizace (rozhraní ODBC)
Aktualizace zdroje dat se spravují během transakcí pomocí vyrovnávací paměti pro úpravy (stejná metoda používaná mimo transakce). Datové členy sady záznamů pole souhrnně slouží jako vyrovnávací paměť pro úpravy, která obsahuje aktuální záznam, který sada záznamů dočasně zálohuje během nebo AddNew
Edit
. Delete
Během operace není aktuální záznam zálohován v rámci transakce. Další informace o vyrovnávací paměti pro úpravy a o tom, jak aktualizace ukládají aktuální záznam, naleznete v tématu Sada záznamů: Jak sady záznamů aktualizují záznamy (ODBC).
Poznámka:
Pokud jste implementovali hromadné načítání řádků, nemůžete volat AddNew
, Edit
nebo Delete
. Abyste mohli provádět aktualizace zdroje dat, musíte místo toho napsat vlastní funkce. Další informace o hromadném načítání řádků naleznete v tématu Sada záznamů: Načítání záznamů hromadně (ODBC).
Během transakcí lze AddNew
Edit
Delete
potvrdit nebo vrátit zpět operace. Účinky CommitTrans
a Rollback
můžou způsobit obnovení aktuálního záznamu do vyrovnávací paměti pro úpravy. Abyste měli jistotu, že je aktuální záznam správně obnoven, je důležité pochopit, jak CommitTrans
fungují CRecordset
funkce aktualizace a Rollback
členské funkce CDatabase
.
Jak CommitTrans ovlivňuje aktualizace
Následující tabulka vysvětluje účinky CommitTrans
transakcí.
Jak CommitTrans ovlivňuje aktualizace
Operace | Stav zdroje dat |
---|---|
AddNew a Update pak CommitTrans |
Do zdroje dat se přidá nový záznam. |
AddNew (bez Update ) a pak CommitTrans |
Nový záznam se ztratí. Záznam nepřidá do zdroje dat. |
Edit a Update pak CommitTrans |
Upravuje potvrzené zdroje dat. |
Edit (bez Update ) a pak CommitTrans |
Úpravy záznamu se ztratí. Záznam zůstává ve zdroji dat nezměněný. |
Delete potom CommitTrans |
Záznamy odstraněné ze zdroje dat |
Jak vrácení zpět ovlivňuje transakce
Následující tabulka vysvětluje účinky Rollback
transakcí.
Jak vrácení zpět ovlivňuje transakce
Operace | Stav aktuálního záznamu | Musíte také | Stav zdroje dat |
---|---|---|---|
AddNew a Update pak Rollback |
Obsah aktuálního záznamu se dočasně uloží, aby se uvolnil prostor pro nový záznam. Nový záznam se zadává do vyrovnávací paměti pro úpravy. Po Update zavolání se aktuální záznam obnoví do vyrovnávací paměti pro úpravy. |
Přidání ke zdroji dat vytvořenému Update pomocí je obrácené. |
|
AddNew (bez Update ), pak Rollback |
Obsah aktuálního záznamu se dočasně uloží, aby se uvolnil prostor pro nový záznam. Vyrovnávací paměť pro úpravy obsahuje nový záznam. | Znovu zavolejte AddNew , aby se vyrovnávací paměť pro úpravy obnovila do prázdného nového záznamu. Nebo zavolejte Move (0) k obnovení starých hodnot do vyrovnávací paměti pro úpravy. |
Protože Update nebyla volána, nebyly provedeny žádné změny ve zdroji dat. |
Edit a Update pak Rollback |
Dočasně se uloží needitovaná verze aktuálního záznamu. Úpravy se provádějí v obsahu vyrovnávací paměti pro úpravy. Po Update zavolání se neupravená verze záznamu stále dočasně uloží. |
Dynaset: Posuňte se od aktuálního záznamu a pak zpátky obnovte neupravenou verzi záznamu do vyrovnávací paměti pro úpravy. Snímek: Volání Requery aktualizace sady záznamů ze zdroje dat |
Změny ve zdroji dat provedené pomocí Update jsou obrácené. |
Edit (bez Update ), pak Rollback |
Dočasně se uloží needitovaná verze aktuálního záznamu. Úpravy se provádějí v obsahu vyrovnávací paměti pro úpravy. | Opětovným voláním Edit obnovte needitovanou verzi záznamu do vyrovnávací paměti pro úpravy. |
Protože Update nebyla volána, nebyly provedeny žádné změny ve zdroji dat. |
Delete potom Rollback |
Obsah aktuálního záznamu se odstraní. | Volání Requery pro obnovení obsahu aktuálního záznamu ze zdroje dat |
Odstranění dat ze zdroje dat je obrácené. |
Viz také
Transakce (ODBC)
Transakce: Provádění transakcí v sadě záznamů (ODBC)
CDatabase – třída
CRecordset – třída