Sdílet prostřednictvím


CRecordset::Edit

 

Umožňuje změny na aktuální záznam.

Syntaxe

virtual void Edit( );

Poznámky

Po zavolání Upravit, můžete změnit pole datových členů přímo obnovením jejich hodnoty. Tato operace nebude dokončena při následně volání aktualizace členská funkce uložte změny na zdroj dat.

Poznámka

Pokud jste implementovali hromadné načítání řádků, nelze volat Upravit. To bude mít za následek selhání kontrolního výrazu. Ačkoli třída CRecordset neposkytuje mechanismus pro hromadnou aktualizaci řádků dat, můžete napsat vlastní funkce pomocí funkce ODBC API SQLSetPos. Další informace o hromadném načítání řádků naleznete v článku Sada záznamů: načítání hromadné záznamů (ODBC).

Upravit uloží hodnoty datových členů sady záznamů. Pokud zavoláte Upravit, provést změny, potom volat Upravit znovu, jsou obnoveny na záznam hodnoty byly před první Upravit volání.

V některých případech můžete chtít aktualizovat sloupec tím, že Null (obsahující žádná data). Chcete-li tak učinit, zavolejte SetFieldNull s parametrem TRUE označit pole Null; to také způsobí, že sloupec má být aktualizován. Pokud chcete, aby pole k zápisu do zdroje dat i v případě, že nebyl změněn jeho hodnotu, volání SetFieldDirty s parametrem TRUE. Tento postup funguje, i v případě, že pole měl hodnotu Null.

Pokud zdroj dat podporuje transakce, můžete provést Upravit volání součástí transakce. Všimněte si, že byste měli volat CDatabase::BeginTrans před zavoláním Upravit a po otevření sady záznamů. Všimněte si také, že volání CDatabase::CommitTrans nenahrazuje pro volání aktualizace dokončete Upravit operace. Další informace o transakcích, najdete v tématu třída CDatabase.

V závislosti na aktuální režim uzamčení, může být uzamčen záznam aktualizované Upravit dokud nezavoláte aktualizace nebo přejděte 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.

Předchozí hodnotu aktuální záznam je obnoven, pokud posunete na nový záznam před zavoláním aktualizace. A CDBException je vyvolána, pokud zavoláte Upravit pro sady záznamů, která nelze aktualizovat nebo pokud není žádný aktuální záznam.

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

Výjimky

Exception

Condition

Tato metoda může vyvolat 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é

Třída CRecordset
Graf hierarchie
CRecordset::Update
CRecordset::AddNew
CRecordset::Delete
CRecordset::SetFieldDirty
CRecordset::SetFieldNull
CRecordset::CanUpdate
CRecordset::CanTransact
CRecordset::SetLockingMode