Schuldzuweisungen helfen nicht wirklich weiter.
Es geht nicht um Schuldzuweisung, sondern einfach darum, sich mal dazu herabzulassen und den Anwender um Hilfe bei der Fehlersuche zu bitten. Der weiß nunmal eher als der Programmierer, wann ihm Daten verloren gegangen sind. Es ist extrem hilfreich, sich diese Information zu beschaffen.
Dann geht dashier alles deutlich einfacher:
Man sollte erst einmal die Ursache eingegrenzen:
- Die Datensätze wurden nie in die Datenbank eingefügt.
- Die Datensätze wurden in die Datenbank eingefügt, die Transaktion wurde aber nicht erfolgreich beendet (kein Commit).
Die Datenbankverbindung wurde getrennt oder im Laufe der weiteren Bearbeitung trat ein Fehler auf.
Beides sind Ursachen für einen Abbruch der Transaktion (Rollback).
- Die Datensätze wurden später überschrieben oder gelöscht.
- Die Datenbankdatei wurde durch eine ältere Version z.B. aus einer Datensicherung überschrieben.
- Die Datenbankdatei ist beschädigt.
Notfalls jede Nutzeraktion und natürlich auch Fehlermeldungen unabhängig von der Datenbank in einer Logdatei protokollieren.
Derweil: Anwender können verblüffend oft Hinweise geben, die eben dashier
Man sollte erst einmal die Ursache eingegrenzen:
ermöglichen. Da hilft zuweilen mal drei Minuten Frage- und Antwortspiel. Das ist effektiver, als alle möglichen Eventuallitäten erstmal mitzuloggen. Und ja: Es entbindet den Programmierer nicht eine vernünftige und möglichst vollständige Fehlerbehandlung zu implementieren.
Gerade bei sporadischen Fehler beziehe ich die Anwender
immer mit in die Fehlersuche ein. Das hat für mich den Vorteil, dass auch "abgefahrene" Fehlersituationen recht schnell erkannt werden können, einfach die Sachen, auf die man von alleine garnicht kommt.
Aber: Es zeigt auch den Anwendern gegenüber eine Wertschätzung, nämlich, dass man sie mit ihren Problemen ernst nimmt und ihnen aktiv bei der Fehlerbehebung hilft.
Das mag aus purer technischer Sicht vielleicht nicht unbedingt "wichtig" sein, aus psychologischer Sicht aber durchaus.
Und ein Anwender, der merkt, dass ich ihn für voll nehme und seine Ideen, Anregungen, Probleme, Fragen ... ernst nehme, ist viel eher bereit mir zu helfen, benötigte Informationen zu geben ...