CRecordset::Delete

virtuelle privatevoid Löschen ( );
werfen ( CDBException );

Bemerkungen

Rufen Sie diese Memberfunktion um den aktuellen Datensatz löschen. Nach einem erfolgreichen Löschvorgang der Recordset-Felddatenmember werden auf einen Null-Wert festgelegt, und Sie müssen explizit aufrufen, eine der Funktionen Verschieben um aus den gelöschten Datensatz bewegen. Wenn Sie aus den gelöschten Datensatz bewegen, ist es nicht möglich zu ihm zurückzukehren. Wenn die Datenquelle Transaktionen unterstützt, stellen Sie die Löschen Teil einer Transaktion aufrufen. Weitere Informationen finden Sie im Artikel Transaktion (ODBC) im Visual C++ Programmer's Guide.

Hinweis&Nbsp;  Wenn Sie das gesammelte Abrufen von Zeilen implementiert haben, können nicht Sie Löschenaufrufen. Dadurch wird eine Assertionsmeldung. Obwohl CRecordset -Klasse nicht über einen Mechanismus zum Aktualisieren von Zeilen Massenkopieren von Daten bereitstellt, können Sie eigene Funktionen schreiben, mithilfe der ODBC-API-Funktion SQLSetPos. Ein Beispiel für wie Sie dies tun, finden Sie im Beispiel DBFETCH. Weitere Informationen über gesammelte finden Sie im Artikel Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC) im Visual C++ Programmer's Guide.

Vorsicht&Nbsp;  Das Recordset muss aktualisierbar sein und muss es ein gültiger Datensatz im Recordset aktuelle beim Aufruf Löschen; Andernfalls tritt ein Fehler auf. Wenn Sie einen Datensatz löschen, aber nicht zu einem neuen Datensatz Blättern, vor dem Löschen erneut aufrufen, löst beispielsweise Löschen einer CDBException.

Im Gegensatz zu AddNew und Editfolgt ein Aufruf von Delete nicht durch einen Aufruf von Update. Wenn ein Delete -Aufruf schlägt fehl, unverändert die Felddaten Member bleiben.

Beispiel

Dieses Beispiel zeigt eine Recordset auf dem Rahmen einer Funktion erstellt. Das Beispiel setzt das Vorhandensein von m_dbCust , einer Membervariablen vom Typ CDatabase , die bereits mit der Datenquelle verbunden.

/ / Erstellen ein abgeleiteten CRecordset-Objekt
CCustSet RsCustSet (Amp; M_dbCust);
rsCustSet.Open ();

Wenn (rsCustSet.IsEOF () ||! (rsCustSet.CanUpdate) ||
    ! rsCustSet.CanTransact ())
   Rückkehr;

Wenn (! m_dbCust.BeginTrans ())
{
   / / Etwas tun, um einen Fehler zu behandeln
}
anderes
{
   / / Vielleicht zu einem neuen Datensatz scrollen...
   / / Löschen des aktuellen Datensatzes
   rsCustSet.Delete ();
   // ...

/ / Befehle für diese Transaktion beendet
   Wenn (< der Benutzer die Transaktion > bestätigt)
      m_dbCust.CommitTrans ();
   sonst / / User Meinung geändert
      m_dbCust.Rollback ();
}
//

CRecordset ÜbersichtMember der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException

Index