Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#6

AW: Meldung "0 record(s) updated. Only one record should have been updated"

  Alt 10. Sep 2020, 15:59
Multiuserbetrieb ohne eigenes Transaktionshandling ist suboptimal.

Wenn Client 1 eine Transaktion startet, dann ist der nächste Wert für das AutoInc bekannt.
Wenn Client 2 eine Transaktion startet, dann ist der nächste Wert für das AutoInc bekannt.

Wenn sie das beide gleichzeitig machen, dann haben sie beim Speichern auch den gleichen Wert.

Wenn nun Client 1 zuerst speichert, dann wird der Wert vergeben.
Wenn nun Client 2 speichert, wird der gleiche Wert vergeben.

Pech gehabt: Doppelter Wert für die ID vergeben.
Resultat: Fehlermeldung.

Edit heißt nur: Das in Delphi die Daten geändert werden sollen.
Post heißt: Daten ab zur Datenbank. Dort tritt dann der Fehler auf.
Wie soll die Datenbank denn beim Edit schon wissen, dass es nach der Änderungen beim Speichern ein Problem geben könnte?

Noch witziger wird es dann beim Append:
Woher soll die Datenbank denn dort wissen, was als Daten eingegeben wird und später beim Post zu einem Problemführen könnte? Globalgalaktische ?

Programm beende macht letztlich (meist) ein Rollback.

Kann man sinnvoller selbst im Progamm steuern und ist dort für den Anwender weniger lässtig
  Mit Zitat antworten Zitat