Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
Delphi 11 Alexandria
|
AW: MSSQL: Datensatz fehlt
17. Dez 2020, 07:15
Ist die Erfassung über ein Transaction gesteuert?
Falls nicht, könnte ein Programmabsturz die Ursache sein:
Master-Datensatz wurde erfasst, aber noch nicht gespeichert (kein Post). Dann die Detail-Datensätze, die auch gespeichert wurden (Post). Anschließend ein Programmabsturz. Ohne Transaction würde hier auch ein Abbruch der Erfassung zu deinem Phänomen führen.
Ein Log würde ich nicht unbedingt ins Programm einbauen. Mein Weg wäre da eher ein Trigger auf der Datenbank. Besser zwei Trigger. Einen für die Master-Tabelle und einer für die Detais. Die Trigger sollten beim Erfassen und beim Löschen feuern.
Eine andere Idee habe ich noch:
Falls die Master-Daten in einem DBGrid o.ä. angezeigt werden, kann man Datensätze auch mit Strg-Entf löschen, wenn das nicht auf Read-Only steht oder anderweitig abgefangen wird.
Du kannst natürlich auch am Datenbankmodell etwas machen, um dieses Problem in den Griff zu bekommen. Wenn du mit referentieller Integrität arbeitest, sollte die Datenbank das Löschen des Master-Datenatzes verhindern, falls Detail-Datensätze noch existieren.
Peter
|