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).
Przestroga |
---|
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