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


CDaoRecordset::Edit

Эта функция-член вызывается с целью разрешить изменения в текущей записи.

virtual void Edit( );

Заметки

Как только вызовите функцию-член Изменить, копируются изменения, выполненные на поля текущей записи в буфер копирования. После внесения необходимых изменений в записи, вызовите Обновить, чтобы сохранить внесенные изменения. Изменить сохраняет значения элементов данных набора записей. При вызове Изменить, внесите изменения, а затем вызовите Изменить значения записи снова извлекается с они были до того, как первый вызов Изменить.

Предупреждение

Если редактируется запись и затем выполнить любую операцию, которая перемещает к другой записи без первого вызывающего Обновить, изменения теряются без предупреждения.Кроме того, если закрыть набор записей или родительскую базу данных, изменянная запись отменена без предупреждения.

В некоторых случаях может понадобиться обновить столбец, выполнив его null (не содержащий данные). Чтобы сделать это, вызовите SetFieldNull с параметром TRUE для пометки null поля. это также приводит к тому, что столбец должен быть обновлен. Если требуется поле быть написан на источник данных, то даже в том случае, если его значение не изменилось, вызовите SetFieldDirty с параметром TRUE. Это работает даже если поле имело значение null.

Измененные границы которые отмечают элементы данных полей, чтобы убедиться, что они будут записывано для записи в источнике данных, механизмом обмена полями записей DAO (DFX). Изменение значения поля обычно устанавливает поля пакостным автоматически, поэтому вам самостоятельно редко будет необходимо вызвать SetFieldDirty, но иногда может потребоваться обеспечить, что столбцы будут вставлены явным образом будут обновлены или вне зависимости от того, какое значение в элементе данных поля. Механизм DFX также использует использование PSEUDO NULL. Дополнительные сведения см. в разделе CDaoFieldExchange::m_nOperation.

Если механизм двойной- буферизации не используется, то изменение значения поля автоматически не устанавливает поле как пакостный. В этом случае будет необходимо явно задать поле пакостным. Пометить, содержащихся в m_bCheckCacheForDirtyFields отслеживает этот автоматическая проверка поля.

Если объект набора записей пессимистически блокировать в многопользовательской среде, используется остаток от времени Изменить запись блокироваться до тех пор, пока процесс обновления не будет полностью готово. Если набор записей оптимистически блокироваться запись блокирована и сравнитьа с более ранние исправленной записью непосредственно перед ее обновлена в базе данных. Если запись была изменена после того, что вызывающий Изменить, Обновить операция завершается неудачей и MFC вызывает исключение. Можно изменить блокируя режим с SetLockingMode.

Примечание

Оптимистический блокировать всегда используется в форматах внешней базы данных, таких как ODBC и драйвером ISAM параметры.

Текущая запись остается текущий после вызова Изменить. Вызов Изменить должна быть текущей. Если отсутствует текущая запись или если набор записей не относится к открытому объекту набора записей пользователем табличный тип или динамическое подмножество данных- типа, то возникает исключение. Вызов ИзменитьCDaoException вызывает исключение при следующих условий:

  • Отсутствует текущая запись.

  • База данных или набора записей только для чтения.

  • Нет полей в записи не быть обновляемым.

  • База данных или набора записей были открываются для монопольного использования другим пользователем.

  • Другой пользователь блокировал страница, содержащий пользовательскую запись.

Если источник данных поддерживает транзакции, то можно сделать часть вызова Изменить транзакции. Обратите внимание, что необходимо вызывать перед вызовом CDaoWorkspace::BeginTransИзменить и после набора записей открыт. Также обратите внимание, что при вызове CDaoWorkspace::CommitTrans не суррогата для вызова Обновить для выполнения операции Изменить. Дополнительные сведения о транзакциях см. в описании класса CDaoWorkspace.

Дополнительные сведения см. в разделах "метода AddNew", "правка" метод "метод delete", "методу update" и "обновляемое свойство" в Справке DAO.

Требования

Header: afxdao.h

См. также

Ссылки

Класс CDaoRecordset

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

CDaoRecordset::AddNew

CDaoRecordset::CancelUpdate

CDaoRecordset::CanTransact

CDaoRecordset::Delete

CDaoRecordset::Update