Sdílet prostřednictvím


Transakce: Vliv transakcí na 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 způsobu aktualizace ukládá aktuální záznam, naleznete v Sada záznamů: Jak sady záznamů aktualizace záznamů (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 zdroji dat.Další informace o hromadném načítání řádku, naleznete v sady záznamů: Fetching Records in Bulk (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.Chcete-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 CommitTrans ovlivňuje 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í obnovení neupravené verze záznamu do upravené vyrovnávací paměti.

Snímek: volá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é

Referenční dokumentace

Třída CDatabase

Třída CRecordset

Koncepty

Transakce (ODBC)

Transakce (ODBC)

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