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. |