[ASP] Datensatz sperren

Claudius Ceteras activeserverpages at glengamoi.com
Fri, 26 Nov 2004 10:28:18 +0100


> Dafür gäbe es Tausend Lösungen aber alle sind schlecht. 
> 
> Was passiert wenn ein Benutzer den Datensatz sperrt und 
> abstürzt. Und und.
> 
> Was Du machen mußt ist ein sogenanntes Reread. D. h. ein 
> Benutzer speichert den geänderten Datensatz. Dabei 
> vergleichst Du welche Felder er überhaupt geändert hat, in 
> dem Du sozusagen zusätzlich eine Kopie des Datensatzes behälst. 
> 
> Und dann erstellst Du ein UPDATE Statement das nur die 
> geänderten Daten speichert. 

Bis man das erstellt hat, kann sich noch was geändert haben...

Richtig so; vielleicht hast Du das auch gemeint:

Angenommen ich lese:
"Select id, wert1, wert2 from tab where id=123" und bekomme folgendes =
raus:

123, 'Test', 45


Jetzt verändere ich das zu folgenden, merke mir aber die alten Werte:
123, 'Neu', 89


Um jetzt ohne Probleme zu updaten, generiere ich folgendes:

Update tab set wert1='Neu, wert2=89
Where wert1='Test' and wert2=45

Das ding führst Du aus und schaust dir dann die affectedRecords an. =
Ist das
1, dann wurde in der zwischenzeit nichts geändert, ist es aber 0, dann =
war
jemand anders schneller und du kannst deinem User den neuen Datensatz =
holen,
ihm diese anzeigen und nochmal die werte anpassen lassen, die er =
abschicken
mchte... Ggf. Kann er auch auswählen, das die werte überschrieben, =
oder
nicht geändert werden sollen...



Claudius