Compartir a través de


CRecordset::Delete

Elimina el registro actual.

virtual void Delete( );

Comentarios

Después de una eliminación correcta, los miembros de datos de campo de conjunto de registros en un valor nulo, y debe llamar explícitamente a una de las funciones de Mover para desplazarse del registro eliminado.Una vez que se desplaza del registro eliminado, no es posible volver al.Si el origen de datos admite transacciones, puede crear la parte de la llamada de Eliminar de una transacción.Para obtener más información, vea el artículo transacción (ODBC).

[!NOTA]

Si está implementada la obtención de filas masiva, no puede llamar a Eliminar.Esto da lugar a un error de aserción.Aunque la clase CRecordset no proporcionan un mecanismo para actualizar filas masivas de datos, puede escribir las propias funciones mediante la función API SQLSetPosde ODBC.Para obtener más información sobre la obtención masiva de filas, vea el artículo conjunto de registros: Obtener registros de forma masiva (ODBC).

Nota de precauciónPrecaución

El conjunto de registros debe ser actualizable y debe haber una ejecución de registro válida en el conjunto de registros al llamar a Eliminar; si no, se produce un error.Por ejemplo, si elimina un registro pero no se mueve a un nuevo registro antes de llamar a Eliminar de nuevo, Eliminar produce CDBException.

A diferencia de AddNew y de Editar, una llamada a Eliminar no va seguida de una llamada a Update.Si se produce un error en una llamada de Eliminar , deje los miembros de datos de campo sin cambios.

Excepciones

Este método puede producir excepciones de **CDBException***escrito.

Ejemplo

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

// Create a derived CRecordset object
CCustomer rsCustSet(&m_dbCust);
rsCustSet.Open();

if(rsCustSet.IsEOF() || !rsCustSet.CanUpdate() ||
   !rsCustSet.CanTransact())
{
   return;
}

m_dbCust.BeginTrans();

// Perhaps scroll to a new record...
// Delete the current record
rsCustSet.Delete();

// Finished commands for this transaction
if(IDYES == AfxMessageBox(_T("Commit transaction?"), MB_YESNO))
   m_dbCust.CommitTrans();
else // User changed mind
   m_dbCust.Rollback();

Requisitos

encabezado: afxdb.h

Vea también

Referencia

Clase CRecordset

Gráfico de jerarquía

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

Clase CDBException