CRecordset::Edit
Разрешает изменения в текущей записи.
Синтаксис
virtual void Edit( );
Заметки
После вызова Изменить можно изменить элементы данных полей непосредственно сбросьте их значения.Операция выполняется при нажатии далее вызовите функцию-член обновление для сохранения изменений в источнике данных.
Примечание
Если реализован bulk строку выборку, то нельзя вызывать Изменить.Это приведет к становятся утверждении.Хотя класс CRecordset не предоставляет механизм для обновления массовые строки данных, можно написать собственные функции с помощью api-функций ODBC SQLSetPos.Дополнительные сведения о массовой строке выборке см. в статье Набор записей. Пакетная выборка строк (ODBC).
Изменить сохраняет значения элементов данных набора записей.При вызове Изменить, внесите изменения, а затем вызовите Изменить значения записи снова извлекается с они были до того, как первый вызов Изменить.
В некоторых случаях может понадобиться обновить столбец, выполнив его null (не содержащий данные).Чтобы сделать это, вызовите SetFieldNull с параметром TRUE для пометки null поля. это также приводит к тому, что столбец должен быть обновлен.Если требуется поле быть написан на источник данных, то даже в том случае, если его значение не изменилось, вызовите SetFieldDirty с параметром TRUE.Это работает даже если поле имело значение null.
Если источник данных поддерживает транзакции, то можно сделать часть вызова Изменить транзакции.Обратите внимание, что необходимо вызывать перед вызовом CDatabase::BeginTransИзменить и после набора записей открыт.Также обратите внимание, что при вызове CDatabase::CommitTrans не суррогата для вызова Обновить для выполнения операции Изменить.Дополнительные сведения о транзакциях см. в описании класса CDatabase.
В зависимости от текущего блокируя режима обновляемой записи может быть блокирована Изменить до тех пор, пока не будет вызван Обновить или прокручивать к другой записи или оно может быть блокировано только во время вызова Изменить.Можно изменить блокируя режим с SetLockingMode.
Предыдущее значение текущей записи восстановлено при прокрутке к новому рекорду перед вызовом Обновить.CDBException возникающее, если вызывается Изменить набора записей, не может быть обновлено или если отсутствует текущая запись.
Дополнительные сведения см. в разделе статьи транзакция (ODBC) и Набор записей. Блокировка записей (ODBC).
Исключения
Exception
Condition
Этот метод может создавать исключения типа CDBException* и CMemoryException*.
// 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!"));
}
Требования
Header: afxdb.h
См. также
CRecordset Class
Диаграмма иерархии
CRecordset::Update
CRecordset::AddNew
CRecordset::Delete
CRecordset::SetFieldDirty
CRecordset::SetFieldNull
CRecordset::CanUpdate
CRecordset::CanTransact
CRecordset::SetLockingMode