Udostępnij za pośrednictwem


CRecordset::Delete

Usuwa z bieżącego rekordu.

virtual void Delete( );

Uwagi

Po pomyślnym usunięciu, członkowie danych pola w zestawie rekordów są ustawione na wartości Null i należy jawnie wywołać jeden z przenieść funkcji, aby opuścić usunięty rekord.Po przeniesieniu poza usunięty rekord, nie jest możliwe przywrócenie go.Jeśli źródło danych obsługuje transakcje, można utworzyć usunąć wywołania częścią transakcji.Aby uzyskać więcej informacji, zobacz artykuł Transakcji (ODBC).

[!UWAGA]

Jeśli zaimplementowano pobieranie wiersza luzem, nie można wywołać usunąć.Spowoduje to potwierdzenia nie powiodło się.Chociaż klasy CRecordset mechanizmu aktualizacji zbiorczej wierszy danych, można napisać własne funkcje za pomocą funkcji interfejsu API ODBC SQLSetPos.Aby uzyskać więcej informacji na temat Pobieranie wiersza luzem, zobacz artykuł rekordów: pobieranie rekordów luzem (ODBC).

Informacje dotyczące przestrogiPrzestroga

Zestaw rekordów musi być aktualizowalna i musi istnieć prawidłowy rekordu bieżącego zestawu rekordów podczas wywołania usunąć; w przeciwnym razie wystąpi błąd.Na przykład usunąć rekordu, ale nie przewiń do nowego rekordu, zanim zadzwonisz usunąć , usunąć generuje CDBException.

W odróżnieniu od AddNew i Edytuj, wywołanie usunąć nie następuje wywołanie Aktualizacja.Jeśli usunąć wywołanie nie powiedzie się, pole danych członków są pozostawione bez zmian.

Wyjątki

Tej metody można zgłosić wyjątków typu CDBException *.

Przykład

W tym przykładzie przedstawiono zestaw rekordów utworzonych na ramkę funkcji.W przykładzie zakłada się istnienie m_dbCust, zmienną typu CDatabase już podłączony do źródła danych.

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

Wymagania

Nagłówek: afxdb.h

Zobacz też

Informacje

Klasa CRecordset

Diagram hierarchii

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

Klasa CDBException