Share via


CDaoRecordset::Edit

Llame a esta función miembro para permitir cambios en el registro actual.

virtual void Edit( );

Comentarios

Una vez que se llama a la función miembro de Editar , los cambios realizados en los campos del registro actual se copian en el búfer de copia.Después de realizar los cambios deseados en el registro, llamada Actualizar para guardar los cambios.Editar guarda los valores de los miembros de datos del conjunto de registros.Si llama a Editar, realice los cambios, la llamada Editar de nuevo, los valores del registro se restaura cuáles fueron antes de la primera llamada de Editar .

Nota de precauciónPrecaución

Si edita un registro y después realizar cualquier operación que desplazarse a otro registro sin primer Actualizarque llama, los cambios se pierden sin advertencia.Además, si cierra el conjunto de registros o la base de datos principal, el registro editado descartan sin advertencia.

En algunos casos, quizás desee actualizar una columna en Null (que no contiene datos).Para ello, llame a SetFieldNull con un parámetro de TRUE para marcar el campo Null; esto también hace que la columna se actualice.Si desea que un campo que se escribirá el origen de datos aunque su valor no ha cambiado, llame a SetFieldDirty con un parámetro de TRUE.Esto funciona incluso si el campo tiene el valor Null.

El marco marca los miembros de datos de campo modificados para asegurarse de que se escribirá en el registro en el origen de datos mediante el mecanismo de intercambio de campos del registro de DAO (DFX).Cambiar el valor de un campo establece normalmente el campo modificado automáticamente, por lo que deberá raramente llamar SetFieldDirty personalmente, pero es posible que a veces desee asegurarse de que las columnas explícitamente se actualizarán o inline independientemente del valor está en el miembro de datos de campo.el mecanismo de DFX también emplea el uso de PSEUDO NULL OF INFO.Para obtener más información, vea CDaoFieldExchange:: m_nOperation.

Si el mecanismo de doble búfer no se usa, después cambiar el valor del campo no restablece automáticamente el campo como modificado.En este caso, será necesario establecer explícitamente el campo modificado.El mensaje contenido en m_bCheckCacheForDirtyFields controla este comprobación automática de campo.

Cuando el objeto de conjunto de registros está bloqueado pesimista en un entorno multiusuario, se utiliza el registro permanece bloqueado desde el momento Editar hasta que se complete la actualización.Si el conjunto de registros está bloqueado optimista, el registro está bloqueado y en comparación con el registro preredactado justo antes de que se actualiza en la base de datos.Si el registro ha cambiado desde que se llamó Editar, la operación de actualización se produce y MFC produce una excepción.Puede cambiar el modo de bloqueo con SetLockingMode.

[!NOTA]

El bloqueo optimista siempre se utiliza en formatos externos de base de datos, como ODBC y instalable ISAM.

El registro actual permanece actual después de llamar a Editar.Para llamar a Editar, debe haber un registro actual.Si no hay ningún registro actual o si el conjunto de registros no hace referencia a un objeto de conjunto de registros abierto de tabla- tipo o de dynaset- tipo, se produce una excepción.La llamada Editar produce CDaoException que se produzca en las condiciones siguientes:

  • No hay ningún registro actual.

  • La base de datos o el conjunto de registros es de sólo lectura.

  • No hay campos en el registro actualizables.

  • La base de datos o el conjunto de registros abierto para el uso exclusivo a otro usuario.

  • Otro usuario ha bloqueado la página que contiene el registro.

Si el origen de datos admite transacciones, puede crear la parte de la llamada de Editar de una transacción.Observe que debe llamar CDaoWorkspace::BeginTrans antes de llamar a Editar y después de que han iniciado el conjunto de registros.Observe también que llamar a CDaoWorkspace::CommitTrans no es un sustituto para llamar a Actualizar para completar la operación de Editar .Para obtener más información sobre transacciones, vea la clase CDaoWorkspace.

Para obtener información relacionada, vea los temas “método de AddNew”, “método de edición”, “método delete”, “método update”, y propiedad “Actualizable” en la Ayuda de DAO.

Requisitos

encabezado: afxdao.h

Vea también

Referencia

Clase CDaoRecordset

Gráfico de jerarquía

CDaoRecordset::AddNew

CDaoRecordset::CancelUpdate

CDaoRecordset::CanTransact

CDaoRecordset::Delete

CDaoRecordset::Update