CRecordset::Edit

virtual void Edit( );
tirar ( CDBException, CMemoryException );

Observaciones

Llame a esta función miembro para permitir los cambios en el registro actual. Después de llamar a Editar, puede cambiar a los miembros de datos de campo restableciendo directamente sus valores. La operación se ha completado cuando posteriormente se llama a la función de miembro de Actualizar para guardar los cambios en el origen de datos.

&Notanbsp;  Si han implementado la obtención masiva de filas, no se puede llamar a Editar. Esto resultará en una aserción fallida. Aunque la clase CRecordset no proporcionan un mecanismo de actualización masiva de filas de datos, puede escribir sus propias funciones mediante la función de la API de ODBC SQLSetPos. Un ejemplo de cómo hacerlo, vea el ejemplo DBFETCH. Para obtener más información sobre la obtención masiva de filas, vea el artículo conjunto de registros: obtener registros en masiva (ODBC) en la Guía del programador de Visual C++.

Editar guarda los valores de los miembros del conjunto de registros de datos. Si llamar a Editar, realizar cambios y llamar nuevamente a Editar , se restauran los valores del registro a lo que eran antes de la primera llamada de Editar.

En algunos casos, puede que desee actualizar una columna haciendo nulo (sin datos). Para hacerlo, llame al SetFieldNull con un parámetro de TRUE para marcar el campo Null; Esto también causa la columna para actualizarse. Si desea un campo que se escribe en el origen de datos a pesar de que su valor no ha cambiado, llame a SetFieldDirty con un parámetro de verdad. Esto funciona incluso si el campo tiene el valor Null.

Si el origen de datos admite transacciones, puede realizar la Edición llamada parte de una transacción. Tenga en cuenta que debe llamar a CDatabase::BeginTrans antes de llamar a Editar y después se ha abierto el juego de registros. También tenga en cuenta que llamar a CDatabase::CommitTrans no es un sustituto de llamar a Update para completar la operación de Edición . Para obtener más información acerca de las transacciones, vea la clase CDatabase.

Dependiendo del modo de bloqueo actual, el registro se actualiza esté bloqueado por Editar hasta que se llama actualización o desplazarse a otro registro o puede ser bloqueado sólo durante la llamada Editar . Puede cambiar el modo de bloqueo con SetLockingMode.

Si se desplaza a un nuevo registro antes de llamar a Update, se restaura el valor anterior del registro actual. Se produce una CDBException si llama a Editar para un conjunto de registros que no se pueden actualizar o si no hay ningún registro actual.

Para obtener más información, vea los artículos Transacción (ODBC) y Recordset: bloqueo de registros (ODBC) en la Guía del programador de Visual C++.

Ejemplo

 / / Ejemplo de CRecordset::Edit
/ / Para editar u&n registro,
/ / Configurar primero el búfer de edición
(de rsCustSet.Edit);

/ / Editar miembros de datos de campo para el registro
rsCustSet.m_dwCustID = 2795;
rsCustSet.m_strCustomer = "Jones Mfg";

/ / Finalmente, completar la operación
Si (! rsCustSet.Update ())
 nbsp;  / / Manejar la falta de actualización

Visió&n General de CRecordset |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambiénnbsp;CRecordset:: Update, CRecordset::Add&New, CRecordset::Delete, CRecordset::SetFieldDirty, CRecordset::SetFieldNull, CRecordset::CanUpdate, CRecordset::CanTransact, CRecordset::SetLockingMode

Index