CRecordset::Delete

virtual void Eliminar ( );
tirar ( CDBException );

Observaciones

Llame a esta función miembro para eliminar el registro actual. Después de una exitosa eliminación, miembros de datos de campo del conjunto de registros se establecen en un valor Null, y debe llamar explícitamente una de las funciones de Mover para mover fuera del registro eliminado. Una vez que se mueve fuera del registro eliminado, no es posible volver a él. Si el origen de datos admite transacciones, puede hacer el Eliminar parte de una transacción. Para obtener más información, consulte el artículo Transacción (ODBC) en la Guía del programador de Visual C++.

&Notanbsp;  Si han implementado la obtención masiva de filas, no se puede llamar a Eliminar. 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++.

Precaució&nnbsp;  El conjunto de registros debe ser actualizable y debe haber un registro válido actual del conjunto de registros cuando se llama a Eliminar; de lo contrario, se produce un error. Por ejemplo, si elimina un registro pero no desplazarse a un nuevo registro antes de llamar Eliminar nuevamente, Eliminar arroja un CDBException.

A diferencia de AddNew y Editar, un llamado a Eliminar no es seguido por una llamada a Update. Si se produce un error en una llamada de Eliminar , sin modificar los datos del campo quedan miembros.

Ejemplo

Este ejemplo muestra un conjunto de registros creado en el marco de una función. El ejemplo supone la existencia de m_dbCust , una variable miembro de tipo CDatabase ya conectado a la fuente de datos.

/ / Crear un objeto derivado de CRecordset
CCustSet rsCustSet (amp; m_dbCust);
(de rsCustSet.Open);

Si (rsCustSet.IsEOF () ||! rsCustSet.CanUpdate () ||
    ! rsCustSet.CanTransact ())
   retorno;

Si (! m_dbCust.BeginTrans ())
{
   / / Hacer algo para controlar un error
}
otra cosa
{
   / / Tal vez vaya a un nuevo récord...
   / / Eliminar el registro actual
   (de rsCustSet.Delete);
   // ...

/ / Terminó comandos para esta transacción
   Si (< el usuario confirma la transacción >)
      (de m_dbCust.CommitTrans);
   Else / / el usuario ha cambiado la mente
      (de m_dbCust.Rollback);
}
//

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

Vea tambié&nnbsp;Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException

Index