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


CRecordset::Delete

Удаляет текущую запись.

virtual void Delete( );

Заметки

После успешного удаления элементов данных полей набора записей устанавливаются в значение NULL, необходимо явно вызвать одну из функций Переместить для перемещения с удаленной записи. После перемещения с удаленной записи, невозможно вернуть к нему. Если источник данных поддерживает транзакции, то можно сделать часть вызова Удалить транзакции. Дополнительные сведения см. в статье транзакция (ODBC).

Примечание

Если реализован bulk строку выборку, то нельзя вызывать Удалить.Это приведет к становятся утверждении.Хотя класс CRecordset не предоставляет механизм для обновления массовые строки данных, можно написать собственные функции с помощью api-функций ODBC SQLSetPos.Дополнительные сведения о массовой строке выборке см. в статье Набор записей. Пакетная выборка строк (ODBC).

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

Набор записей должны быть обновляемым и должно быть допустимое запись current of в наборе записей при вызове Удалить; в противном случае возникает ошибка.Например, при удалении записи, но не перейдите к новому рекорду, прежде чем вызывать метод Удалить снова, Удалить вызывает CDBException.

В отличие от AddNew и правка, вызов Удалить не передается при вызове обновление. Если вызов Удалить завершается неудачей, то элементы данных полей слева неизменной.

Исключения

Этот метод может создавать исключения типа CDBException*.

Пример

В этом примере показан набор записей, созданный во фрейме функции. В примере предполагается наличие m_dbCust, переменную-член типа CDatabase уже подключенную к источнику данных.

// 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();

Требования

Header: afxdb.h

См. также

Ссылки

Класс CRecordset

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

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

Класс CDBException