Sdílet prostřednictvím


CRecordset::Edit

Umožňuje měnit aktuální záznam.

virtual void Edit( );

Poznámky

Po volání Upravit, členů pole dat můžete změnit přímo obnovením jejich hodnoty.Dokončení operace při následně volání aktualizace členské funkce na zdroji dat uložte změny.

[!POZNÁMKA]

Pokud provádění hromadných řádek načítání nelze volat Upravit.To způsobí selhání výrazu.Přestože třídy CRecordset neposkytuje mechanismus pro aktualizaci řádků hromadných dat, můžete napsat vlastní funkce pomocí funkce rozhraní API ODBC SQLSetPos.Další informace o načítání řádků hromadného naleznete v článku záznamů: načítání záznamů hromadné (ODBC).

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

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.

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

V závislosti na aktuální režim uzamčení záznamu aktualizované uzamčeny příkazem Upravit dokud volání aktualizace nebo přejít na jiný záznam nebo může být uzamčen pouze během Upravit volání.Můžete změnit režim uzamčení s SetLockingMode.

Obnoví předchozí hodnotu aktuální záznam pokud přejděte na nový záznam před voláním aktualizace.A CDBException je vyvolána při volání Upravit záznamů, který nelze aktualizovat nebo pokud není žádný aktuální záznam.

Další informace naleznete v článcích Transakce (ODBC) a záznamů: zamykání záznamů (ODBC).

Výjimky

Tuto metodu lze vyvolávají výjimky typu CDBException * a CMemoryException* .

Příklad

// To edit a record, first set up the edit buffer
rsCustSet.Edit();

// Then edit field data members for the record
rsCustSet.m_BillingID = 2795;
rsCustSet.m_ContactFirstName = _T("Jones Mfg");

// Finally, complete the operation 
if(!rsCustSet.Update())
{
    // Handle the failure to update
    AfxMessageBox(_T("Couldn't update record!"));
}

Požadavky

Záhlaví: afxdb.h

Viz také

Referenční dokumentace

Třída CRecordset

Graf hierarchie

CRecordset::Update

CRecordset::AddNew

CRecordset::Delete

CRecordset::SetFieldDirty

CRecordset::SetFieldNull

CRecordset::CanUpdate

CRecordset::CanTransact

CRecordset::SetLockingMode