Hallo,
kann mir bitte jemand kurz erläutern, wie eine Datenbankspeicherung funktioniert, wenn keine Datenbankobjekte als Eingabe benutzt wird?
Bei meinem Fall iseht es so aus, dass ein Anwender sich Daten für einen bestimmten Tag in einem TStringGrid anzeigen lässt. Diese Daten können geändert werden. bei einer Speicherung der Daten wird das aktuell ausgewählte Datum, der Name des TStringGrids sowie die aktuell zu verarbeitende StringGrid-Reihe als Index herangezogen.
Dies funktioniert einwandfrei, es kann mit diesem Verfahren keinerlei inkonsistenz in der Tabelle geben.
Nun versuche ich aber die ganze Sache über ein Netzwerk laufen zu lassen, die Datenbank kann also von 2 Benutzern geöffnet werden. Sollten durch Zufall beide Nutzer zur gleichen Zeit den gleichen Tag zur Ansicht haben, dann kann folgendes passieren:
Nutzer1 ändert Daten. Nutzer 1 speichert die Daten.
Nutzer 2 hat die alten Daten immer noch offen. Nutzer 2 ändert ebenfalls Daten. Nun speichert Nutzer2 die Daten.
Somit ergibt sich eine Situation, welche aufzeigt, dass hier eine Prüfung rein muss.
Wie gestaltet man dies?
Meine eigene Idee wäre, dass ich einen Zeitstempel in der Datenbank für den jeweils angezeigten Tag hinterlege. Dies setzt jedoch vorraus, dass beide PC die gleiche Uhrzeit haben. Oder aber, ich speichere den alten Zeitstempel in einer Variablen, gleiche die Variable VOR dem nächsten speichern mit der aktuellen in der Datenbank ab und kann nun weiter entscheiden. Aber wie entscheidet man sich dann

?
Ich hoffe, ich konnte mein Dilemma ein wenig deutlich machen. Für Hinweise bin ich sehr dankbar
Liebe Grüße
~Mathias