Datensätze löschen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Daten ändern


Mit der Methode Delete wird der aktuelle Datensatz aus einer aktiven Datenmenge gelöscht. Beim Aufrufen dieser Methode geschieht Folgendes:

  • Die Datenmenge empfängt ein Ereignis vom Typ BeforeDelete.
  • Es wird versucht, den aktuellen Datensatz zu löschen.
  • Die Datenmenge wird wieder in den Status dsBrowse versetzt.
  • Die Datenmenge empfängt ein Ereignis vom Typ AfterDelete.

Wenn das Löschen über die Ereignisbehandlungsroutine für BeforeDelete verhindert werden soll, können Sie die globale Prozedur Abort aufrufen:

procedure TForm1.TableBeforeDelete (Dataset: TDataset)
begin
  if MessageDlg('Diesen Datensatz löschen?', mtConfirmation, mbYesNoCancel, 0) <> mrYes then
    Abort;
end;
void __fastcall TForm1::TableBeforeDelete (TDataSet *Dataset)
{
  if (MessageBox(0, "Delete This Record?", "CONFIRM", MB_YESNO) != IDYES)
Abort();
}

Wenn beim Aufrufen der Methode Delete ein Fehler auftritt, wird ein Ereignis vom Typ OnDeleteError generiert. Wenn die Ereignisbehandlungsroutine für OnDeleteError den Fehler nicht beheben kann, bleibt die Datenmenge im Status dsEdit. Nach erfolgreichem Löschvorgang wird die Datenmenge wieder in den Status dsBrowse zurückversetzt, und der auf den gelöschten Datensatz folgende Datensatz wird zum aktuellen Datensatz.

Wenn die aktualisierten Datensätze in einem Cache zwischengespeichert werden, wird der gelöschte Datensatz erst nach dem Aufruf der Methode ApplyUpdates für die Datenmenge aus der zugrunde liegenden Datenbank gelöscht.

Wenn Ihre Formulare einen Navigator enthalten, können die Benutzer den aktuellen Datensatz löschen, indem sie auf die Schaltfläche Löschen des Navigators klicken. In einem Programm ist das Löschen des aktuellen Datensatzes nur durch einen expliziten Aufruf von Delete möglich.

Siehe auch