Sdílet prostřednictvím


CDaoRecordset::Edit

Volání funkce tohoto člena povolit změny v aktuálním záznamu.

virtual void Edit( );

Poznámky

Po volání Upravit členské funkce změny provedené v aktuálním záznamu pole se zkopírují do vyrovnávací paměti kopie.Po provedení požadované změny záznamu volání aktualizace uložte změny.Upravit ukládá hodnoty data členů sadě záznamů.Při volání Upravit, provádět změny potom volat Upravit znovu, hodnoty v záznamu jsou obnoveny jak byly před první Upravit volání.

Poznámka k upozorněníUpozornění

Pokud záznam upravit a potom provést jakoukoli operaci, která přejde na další záznam bez první volací aktualizace, změny budou ztraceny, bez upozornění.Navíc pokud zavřete sady záznamů nebo databáze nadřazené upravovaný záznam je bez upozornění zahozeny.

V některých případech můžete chtít aktualizovat sloupec tak, že hodnotu Null (žádná data obsahující).Provedete to tak, volání SetFieldNull s parametrem TRUE označit pole Null; tím také sloupec aktualizovat.Pokud chcete pole zapsat do zdroje dat i když jeho hodnota se nezměnil, volání SetFieldDirty s parametrem TRUE.Tento postup funguje i v případě, že pole má hodnotu Null.

Značky rámec změnit pole datové členy, zda že bude být zapsán záznam ve zdroji dat mechanismus výměny (DFX) pole záznamu DAO.Hodnota pole Změna obecně nastaví pole dirty automaticky, tak zřídka je třeba volat SetFieldDirty sami, ale někdy chtít zajistit, aby sloupce bude explicitně aktualizovány nebo vložili bez ohledu na to, jaké hodnoty je v poli datový člen.Mechanismus DFX využívá použití PSEUDO NULL.Další informace naleznete v CDaoFieldExchange::m_nOperation.

Pokud není používán mechanismus dvojité ukládání do vyrovnávací paměti, pak hodnota pole Změna nenastavíte automaticky pole jako chybná.V tomto případě je nutné explicitně nastavit pole dirty.Příznak obsažený v m_bCheckCacheForDirtyFields řídí tato pole automatické kontroly.

Pessimistically objektu recordset uzamknout ve víceuživatelském prostředí, zůstane záznam uzamčen od Upravit se používá až do dokončení aktualizace.Uzamčen optimistically záznamů, záznam je uzamčen a ve srovnání s aplikovány záznam těsně před je aktualizován v databázi.Pokud záznam byl změněn zavolali Upravit, aktualizace operace se nezdaří a MFC vyvolá výjimku.Můžete změnit režim uzamčení s SetLockingMode .

[!POZNÁMKA]

Optimistické uzamčení je vždy použita na formáty externí databáze, například ODBC a instalovatelnou metodu ISAM.

Aktuální záznam zůstane aktuální po volání Upravit.Volání Upravit, musí být aktuální záznam.Jestliže neexistuje žádný aktuální záznam nebo záznamů neodkazuje na otevřené tabulce typ nebo typ dynaset objektu recordset, dojde k výjimce.Volání Upravit způsobí, že CDaoException Chcete-li být vyvolána za následujících podmínek:

  • Neexistuje žádný aktuální záznam.

  • Databáze nebo sady záznamů je jen pro čtení.

  • Žádná pole v záznamu nejsou aktualizovatelná.

  • Databáze nebo záznamů byla otevřena pro výhradní použití jiným uživatelem.

  • Jiný uživatel zamkl stránky obsahující váš záznam.

Pokud zdroj dat podporuje transakce, aby Upravit volání v rámci transakce.Všimněte si, že by měla zavolat CDaoWorkspace::BeginTrans před voláním Upravit a po otevření sady záznamů.Nezapomeňte, že volání CDaoWorkspace::CommitTrans není náhrada pro volání aktualizace Dokončit Upravit operace.Další informace o transakcích, viz třída CDaoWorkspace .

Další informace naleznete v tématech "Metodu AddNew", "Upravit způsob", "Metoda odstranění", "Metoda Update" a "Aktualizovatelná vlastnost" v nápovědě DAO.

Požadavky

Záhlaví: afxdao.h

Viz také

Referenční dokumentace

Třída CDaoRecordset

Graf hierarchie

CDaoRecordset::AddNew

CDaoRecordset::CancelUpdate

CDaoRecordset::CanTransact

CDaoRecordset::Delete

CDaoRecordset::Update