[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