CRecordset::Edit
Umożliwia zmiany do bieżącego rekordu.
Składnia
virtual void Edit( );
Uwagi
Po wywołaniu edytować, elementy członkowskie danych pola można zmienić bezpośrednio resetując ich wartości. Operacja została wykonana, jeśli następnie wywołać aktualizacji funkcja elementu członkowskiego, aby zapisać zmiany w źródle danych.
Uwaga
Jeśli zaimplementowano zbiorcze pobieranie z wiersza, nie można wywołać edytować. Spowoduje to niepowodzenie potwierdzenia. Mimo że klasa CRecordset nie zapewnia mechanizm aktualizacji zbiorczej wierszy danych, można napisać własne funkcje za pomocą funkcji interfejsu API ODBC SQLSetPos. Aby uzyskać więcej informacji na temat zbiorcze pobieranie z wiersza, zobacz artykuł zestaw rekordów: pobieranie rekordów zbiorczego (ODBC).
Edytować zapisuje wartości elementów członkowskich danych w zestawie rekordów. Wywołanie edytować, wprowadzić zmiany, następnie wywołać edytować ponownie, wartości rekordu zostaną przywrócone były przed pierwszym edytować wywołań.
W niektórych przypadkach może chcesz zaktualizować kolumny czyniąc ją (Brak danych zawierający) o wartości Null. Aby to zrobić, należy wywołać SetFieldNull z parametrem TRUE zaznaczania pola Null; powoduje także kolumny, która ma zostać zaktualizowany. Jeśli pole ma być napisane w źródle danych, nawet jeśli jego wartość nie została zmieniona, wywołać SetFieldDirty z parametrem TRUE. To działa, nawet jeśli pole ma wartość Null.
Jeśli źródło danych obsługuje transakcji, można wprowadzić edytować wywołań w ramach transakcji. Należy pamiętać, że należy wywołać CDatabase::BeginTrans przed wywołaniem funkcji edytować i po otwarciu zestawu rekordów. Należy również zauważyć wywołanie CDatabase::CommitTrans nie jest alternatywą do wywoływania aktualizacji do ukończenia edytować operacji. Aby uzyskać więcej informacji na temat transakcji, zobacz klasy CDatabase.
W zależności od bieżącego tryb blokowania rekordu aktualizowana może być zablokowany przez edytować dopóki nie zostanie wywołana aktualizacji lub przewinąć do innego rekordu lub może być zablokowana tylko podczas edytować wywołań. Można zmienić tryb blokowania z SetLockingMode.
Podczas przewijania do nowego rekordu przed wywołaniem funkcji przywróceniu poprzedniej wartości bieżącego rekordu aktualizacji. A CDBException jest generowany, jeśli chcesz wywołać edytować rekordów, który nie można zaktualizować lub jeśli nie istnieje bieżący rekord.
Aby uzyskać więcej informacji, zobacz artykuły Transakcja (ODBC) i zestaw rekordów: blokowanie rekordów (ODBC).
Wyjątki
Exception
Condition
Ta metoda może zgłaszać wyjątki typu CDBException * i CMemoryException*.
Przykład
// 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!"));
}
Wymagania
Nagłówka: afxdb.h
Zobacz też
Klasa CRecordset
Diagram hierarchii
CRecordset::Update
CRecordset::AddNew
CRecordset::Delete
CRecordset::SetFieldDirty
CRecordset::SetFieldNull
CRecordset::CanUpdate
CRecordset::CanTransact
CRecordset::SetLockingMode