Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 15:33
Hallo,
Probleme im Mehrbenutzerbetrieb -> ja

richtiger ist aber nicht richtig

wasserdichte Operation -> = Transaktion, Execute Block ist meines Wissens keine Transaktion.
Das habe ich allerdings noch fast nie benutzt, ich könnte mich also auch irren.

Das meinte ich aber nicht.

Noch mal mein Bsp.
Nutzer 1 beginnt Transaktion 1
geg.
Record2000, Ordnung-2000
Record2001, Ordnung-2001

Ziel
Record2000, Ordnung-2000
Record_neu, Ordnung-2001
Record2001, Ordnung-2002
-> Commit

Nutzer 2, beginnt Transaktion
geg.
Record2000, Ordnung-2000
Record2001, Ordnung-2001

Ziel
Record2000, Ordnung-2000
Record2_neu, Ordnung-2001
Record2001, Ordnung-2002
-> Nutzer 2 Commit

Wenn jetzt der Nutzer2 kurz hinter Nutzer1 beginnt (StartTransaction) und kurz nach Nutzer 1 sein Commit macht.
Was passiert?

Die beiden neuen Records haben die gleiche Ordnungszahl.
Weil beide Transaktionen voneinander getrennt laufen und den gleichen Ausgangsdatenbestand haben.

Record2000, Ordnung-2000
Record_neu, Ordnung-2001
Record2_neu, Ordnung-2001
Record2001, Ordnung-2002

Hier könnte ein Unique Index helfen, so dass zumindestens die Transaktion von Nutzer2 komplett verworfen wird.
Heiko
  Mit Zitat antworten Zitat