Поделиться через


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

Исключения

Этот метод может создавать исключения типа 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

Диаграмма иерархии

CRecordset::Update

CRecordset::AddNew

CRecordset::Delete

CRecordset::SetFieldDirty

CRecordset::SetFieldNull

CRecordset::CanUpdate

CRecordset::CanTransact

CRecordset::SetLockingMode