Sdílet prostřednictvím


CDaoRecordset::AddNew

Volání funkce tohoto člena přidat nový záznam do tabulky typu nebo sadě záznamů.

virtual void AddNew( );

Poznámky

Pole v záznamu jsou zpočátku Null.(V databázové terminologii Null znamená "s žádnou hodnotu" a není stejný jako NULL jazyka C++.) K dokončení operace, musíte zavolat aktualizace členské funkce.Aktualizace změny uloží do zdroje dat.

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

Pokud záznam upravit a potom přejděte na další záznam bez volací aktualizace, změny budou ztraceny, bez upozornění.

Pokud přidáte záznam na typ dynaset záznamů voláním AddNew, záznam je viditelné v sadě záznamů a zahrnuté v podkladové tabulce, kde bude viditelné žádné nové CDaoRecordset objektů.

Umístění nového záznamu závisí na typu sady záznamů:

  • V typu dynamická sada záznamů, kde je vložen nový záznam není zaručeno.Toto chování změněno s Microsoft Jet 3.0 z důvodu výkonu a souběžnosti.Pokud je vaším cílem nastavit nově přidaný záznam na aktuální záznam, získat Záložka poslední změny záznamu a přechod na záložku:

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • V tabulce typ záznamů, pro které byl zadán index jsou vráceny záznamy jejich správné místo v pořadí řazení.Pokud byl zadán index, nové záznamy budou vráceny na konci záznamů.

Záznam, která byla aktuální před použitím AddNew zůstane aktuální.Pokud chcete vytvořit nový záznam aktuální a záznamů podporuje záložky volání SetBookmark záložku identifikován změněno nastavení vlastnosti objektu recordset podkladové DAO.To je užitečné pro určení hodnoty polí čítače (Automatický přírůstek) přidaného záznamu.Další informace naleznete v GetLastModifiedBookmark.

Jestliže databáze podporuje transakce, aby vaše AddNew volání v rámci transakce.Další informace o transakcích, viz třída CDaoWorkspace.Všimněte si, že by měla zavolat CDaoWorkspace::BeginTrans před voláním AddNew .

Je neplatné volání AddNew pro sadu záznamů jehož otevřených nebyla volána členské funkce.A CDaoException je vyvolána při volání AddNew u záznamů, který nelze připojit.Můžete určit, zda je sada záznamů aktualizovatelný voláním CanAppend.

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.

[!POZNÁMKA]

Pokud jsou záznamy bufferovaná double (pole automatické kontroly je povoleno), volání CancelUpdate obnoví členské proměnné hodnoty měly před AddNew nebo Upravit byla volána.

Související informace naleznete v tématech "Metodu AddNew", "CancelUpdate metoda", "Vlastnost LastModified" a "EditMode vlastnost" v nápovědě DAO.

Požadavky

Záhlaví: afxdao.h

Viz také

Referenční dokumentace

Třída CDaoRecordset

Graf hierarchie

CDaoRecordset::CanUpdate

CDaoRecordset::CancelUpdate

CDaoRecordset::Delete

CDaoRecordset::Edit

CDaoRecordset::Update

CDaoRecordset::CanTransact