Sdílet prostřednictvím


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, Editnebo 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 AddNewEditDelete 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í CRecordsetfunkce 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 Updatepak 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 Updatepak 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 Updatepak 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 Updatepak 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