CRecordset::Delete

wirtualne nieważne Usuń ( );
rzut ( CDBException );

Uwagi

Wywołanie tej funkcji Państwa, aby usunąć bieżący rekord. Po pomyślnym usunięciu zestawu rekordów pole danych członków są ustawione na wartość Null, i wyraźnie musi wywołać jednej z funkcji Przenieś w celu przeniesienia wyłączyć usunięty rekord. Po przeniesieniu poza usunięty rekord, nie jest możliwe do niej powrócić. Jeśli źródło danych obsługuje transakcje, można wprowadzać, usuwać wywołania częścią transakcji. Aby uzyskać więcej informacji, zobacz artykuł Transakcji (ODBC) w Visual C++ Programmer's Guide.

Uwaga   Jeśli zostaną wdrożone, pobieranie wiersza luzem, nie można wywołać, Usuń. Spowoduje to twierdzenie nie powiodło się. Chociaż klasa CRecordset nie zapewniają mechanizm aktualizacji zbiorczej wierszy danych, można napisać własne funkcje za pomocą funkcji interfejsu API ODBC SQLSetPos. Aby zapoznać się z przykładem tego, jak to zrobić, zobacz próbki DBFETCH. Aby uzyskać więcej informacji na temat pobierania wierszy zbiorczej, zobacz artykuł rekordów: pobieranie rekordów w masowych (ODBC) w Visual C++ Programmer's Guide.

Przestroganbsp;  Zestaw rekordów należy aktualizować i musi istnieć rekord ważne bieżącego zestawu rekordów podczas wywołania, usunąć; w przeciwnym razie wystąpi błąd. &Na przykład jeśli usunięcie rekordu, ale nie przewijania do nowego rekordu, zanim zadzwonisz usunąć ponownie, usunąć generuje CDBException.

W odróżnieniu od AddNew i edytowaćwywołanie do usunięcia nie następuje wywołanie do aktualizacji. Jeśli wywołanie usunięcia nie powiedzie się, dane pola, których członkami są pozostawione bez zmian.

Przykład

W tym przykładzie przedstawiono zestaw rekordów utworzony na klatkę funkcji. W przykładzie założono istnienie m_dbCust , zmienną typu CDatabase już połączony ze źródłem danych.

/ / Create pozyskany obiekt CRecordset
RsCustSet CCustSet (amp; m_dbCust);
rsCustSet.Open ();

Jeżeli ((rsCustSet.IsEOF) ||! (rsCustSet.CanUpdate) ||
    ! rsCustSet.CanTransact ())
   powrotu;

Jeżeli (! m_dbCust.BeginTrans ())
{
   / / Coś do obsługi awarii
}
Else
{
   / / Może przewinąć do nowego rekordu...
   / / Usunąć bieżący rekord
   rsCustSet.Delete ();
   // ...

/ / Zakończeniu polecenia dla tej transakcji
   Jeśli (< użytkownik potwierdza transakcję >)
      m_dbCust.CommitTrans ();
   Else / / użytkownik zmienił umysł
      m_dbCust.Rollback ();
}
//

Omówie&nie CRecordset |nbsp; Klasa członków | Wykres hierarchii

Zobacz też Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException

Index