Sdílet prostřednictvím


Transakce: Jak transakce ovlivňují aktualizace (rozhraní ODBC)

Aktualizace zdroje dat jsou spravovány během transakcí prostřednictvím využití editované vyrovnávací paměti (stejná metoda se používá i mimo transakce). Pole datových členů sady záznamů slouží jako editovaná vyrovnávací paměť, obsahující aktuální záznam, který sada záznamů dočasně zálohuje během operace AddNew nebo Edit. Během operace Delete není aktuální záznam v rámci transakce zálohován. Další informace o editované vyrovnávací paměti a o tom, jak editovaná vyrovnávací paměť ukládá aktuální záznam, naleznete v tématu Sada záznamů: Jak sady záznamů aktualizují záznamy (ODBC).

Poznámka

Pokud máte naimplementované hromadné načítání řádků, nemůžete volat AddNew, Edit nebo Delete. Místo toho musíte napsat své vlastní funkce pro provádění aktualizací ve zdoji dat. Další informace o hromadném načítání řádku, naleznete v tématu Sada záznamů: Hromadné načítání záznamů (rozhraní ODBC).

Během transakce mohou být operace AddNew, Edit a Delete potvrzeny nebo vráceny zpět. Účinky CommitTrans a Rollback mohou způsobit, že nebude aktuální záznam obnoven v upravené vyrovnávací paměti. Chtete-li se ujistit, že je aktuální záznam správně obnoven, je důležité pochopit, jak pracují členské funkce CommitTrans a Rollback z CDatabase s aktualizačními funkcemi z CRecordset.

Jak CommitTrans ovlivňuje aktualizace

Následující tabulka vysvětluje účinky CommitTrans v transakcích.

Jak ovlivňuje CommitTrans aktualizace

Operace

Stav zdroje dat

AddNew a Update a poté CommitTrans

Nové záznamy jsou vloženy do zdroje dat.

AddNew (bez Update) a poté CommitTrans

Nový záznam je ztracen. Záznam nebyl vložen do zdroje dat.

Edit a Update a poté CommitTrans

Úpravy potvrzené ve zdroji dat.

Edit (bez Update) a poté CommitTrans

Úpravy záznamu jsou ztraceny. Záznam zůstává ve zdroji dat nezměněn.

Delete a poté CommitTrans

Záznamy jsou odstraněny ze zdroje dat.

Jak Rollback ovlivňuje transakce

Následující tabulka vysvětluje účinky Rollback v transakcích.

Jak Rollback ovlivňuje transakce

Operace

Stav aktuálního záznamu

Musíte také

Stav zdroje dat

AddNew a Update a poté Rollback

Obsah aktuálního záznamu je dočasně uložen pro vytvoření prostoru pro nový záznam. Nový záznam je zadán do upravené vyrovnávací paměti. Po zavolání Update je obnoven aktuální záznam do upravené vyrovnávací paměti.

 

Pomocný údaj ve zdroji dat, vytvořený při Update je stornován.

AddNew (bez Update) a poté Rollback

Obsah aktuálního záznamu je dočasně uložen pro vytvoření prostoru pro nový záznam. Upravená vyrovnávací paměť obsahuje nový záznam.

Opětovně zavolejte AddNew pro obnovení nového záznamu a vyprázdnění upravené vyrovnávací paměti. Nebo zavolejte Move(0) pro obnovení starších hodnot v upravené vyrovnávací paměti.

Protože nebyla zavolána operace Update, nebyly provedeny žádné změny ve zdroji dat.

Edit a Update a poté Rollback

Neupravená verze aktuálního záznamu je dočasně uložena. Úpravy jsou provedeny na obsah upravené vyrovnávací paměti. Po zavolání Update je neupravená verze záznamu stále dočasně uložena.

Dynamická sada: Posun mimo aktuální záznam poté vrátí zálohu neupravené verze záznamu do upravené vyrovnávací paměti.

Snímek: Zavolání Requery aktualizuje sadu záznamů ze zdroje dat.

Změny ve zdroji dat, provedené pomocí Update jsou stornovány.

Edit (bez Update) a poté Rollback

Neupravená verze aktuálního záznamu je dočasně uložena. Úpravy jsou provedeny na obsah upravené vyrovnávací paměti.

Opětovně zavolejte Edit pro obnovení neupravené verze záznamu do upravené vyrovnávací paměti.

Protože nebyla zavolána operace Update, nebyly provedeny žádné změny ve zdroji dat.

Delete a poté Rollback

Obsah aktuálního záznamu je odstraněn.

Zavolejte Requery pro obnovení obsahu aktuálního záznamu ze zdroje dat.

Odstranění dat ze zdroje dat je stornováno.

Viz také

Odkaz

CDatabase Class

CRecordset Class

Koncepty

Transakce (rozhraní ODBC)

Transakce (rozhraní ODBC)

Transakce: Provádění transakcí v sadě záznamů (rozhraní ODBC)