DataSet läßt sich im BeforeDelete-Ereignis nicht bearbeiten
-
Hallo,
in einem DataSet mit 5 Feldern möchte ich vor dem Löschen eines Datensatzes den Inhalt von 4 Feldern löschen. Nur der Inhalt des 1. Feldes ist für die Aktualisierung in der verbundenen Tabelle einer Datenbank nötig.void __fastcall TDataModule1::ADODataSet1BeforeDelete(TDataSet *DataSet){ const Spalte0 = 0; //bleibt unverändert const Spalte1 = 1; const maxSpalte = 5; for (int i=Spalte1; i<maxSpalte; i++) DataSet->Fields->Fields[i]->Value = NULL; }
Leider erhalte ich hier die Exception:
Erste Gelegenheit für Exception bei $7C812AFB. Exception-Klasse EDatabaseError mit Meldung 'ADODataSet1: Datenmenge weder im Editier- noch im Einfügemodus'.
Wie läßt sich das Problem lösen?
-
Konnte das Problem lösen:
DataSet->Edit();
Direkt nach dem Durchlauf der Funktion erhalte ich jetzt eine weitere Exception.
Erste Gelegenheit für Exception bei $7C812AFB. Exception-Klasse EOleException mit Meldung 'Nicht genügend Schlüsselfeldinformationen zum Aktualisieren'.
Was kann ich dagegen tun?