Hallo!

> Record-Locking? Das kann ich nicht so nachvollziehen triggert die
> funktion
> das schon beim request des zweiten users?

Jede Datenbank hat ein eingebautes Record-Locking, das verhindert, dass
zwei Benutzer gleichzeitig einen Datensatz �ndern. Allerdings
funktioniert das nur, wenn die Verbindung aufrechterhalten bleibt, also
z. B. in einer Client-Server-Umgebung, in der mehrere Benutzer eine
Tabelle bearbeiten.

Das "Problem" besteht darin, dass im Web die Verbindung immer wieder
unterbrochen wird. Also muss man das Locking anders l�sen. Beim Anzeigen
von Datens�tzen wird nichts gelockt. Jeder kann Datens�tze anzeigen.
Wenn aber ein Benutzer sagt, dass er einen bestimmten Datensatz �ndern
will, m�ssen alle Versuche anderer Benutzer, den gleichen Datensatz zu
�ndern, abgeblockt werden. Da ein �nderungsvorgang auch mal nicht
abgeschlossen wird (einfach Browserfenster schlie�en), muss man bei der
L�sung darauf achten, dass die Datens�tze nicht dauerhaft geblockt
werden.

Wenn im Web jeder Benutzer ausschlie�lich seine eigenen Datens�tze
bearbeitet, braucht man �berhaupt kein Locking. Ansonsten macht man es
in etwa so:

Standardl�sung:
Wenn man mehrere Datens�tze gleichzeitig bearbeiten kann, f�gt man jeder
Tabelle ein Timestamp-Feld hinzu, das beim Lesen mit �nderungsabsicht
mit dem aktuellen Datum belegt wird. Beim Update des Datensatzes wird
der Timestamp wieder auf NULL gesetzt. In der Zwischenzeit werden alle
Lesevorg�nge mit �nderungsabsicht zur�ckgewiesen, wenn der Timestamp
nicht �lter als 20 Minuten ist.

Meine L�sung:
Ich mach es noch etwas anders, weil bei mir immer nur ein einzelner
Datensatz bearbeitet werden kann. In einer zus�tzlichen Tabelle
speichere ich bei jedem Lesen mit �nderungsabsicht die UserId, den
Tabellennamen und die Datensatznummer sowie das Timestamp. Ich brauche
also den Timestamp nicht in jeder einzelnen Tabelle. Ansonsten
funktioniert es aber genau wie bei der Standardl�sung.

Freundliche Gr��e
Joachim van de Bruck
> 
> 
> Gruss
> 
> Roman Pittroff
> Consulting
> Bangkok, Thailand
> 
> -----Original Message-----
> From: Joachim van de Bruck [mailto:[EMAIL PROTECTED]]
> Sent: Friday, October 05, 2001 6:41 PM
> To: ASP Datenbankprogrammierung
> Subject: [aspdedatabase] AW: RE: keine addition mit + in VBS
> 
> 
> Hallo!
> 
> > >Ich meckere hier doch mindestens einmal pro Woche dagegen,
> SQL-Strings
> > in ASP/VBScript zusammenzustoppeln, ;-) - Das ist >unperformant und
> > bringt unn�tige Fehler.
> >
> > Gilt das nuer fuer INSERT und UPDATE query oder schimpfts du auch
auf
> > ASP SELECT SQL Strings? :-)
> 
> Gerade auf die die Selects, vor allem, wenn Sie so aufgebaut sind:
>       sql = "select *"
> sql = sql & "from ..."
> sql = sql & "where ..."
> 
> Nicht nur, dass eine in der Datenbank definierte Abfrage bzw. View
> schneller ist, hier wird auch noch durch die wiederholte Konkatenation
> VBScript gebremst.
> 
> Ist es nicht einfacher, die Abfrage direkt in der Datenbank zu
> erstellen, zu speichern und zu testen und erst dann, wenn's
> funktioniert, in ASP/VBScript einzubauen?
> 
> Tats�chlich mache ich aber auch oft ein "DELETE" per adCmdString im
> Command-Objekt. "UPDATE" und "INSERT" l�uft bei mir �ber das
> Recordset-Objekt mit Array als Parameter f�r rs.AddNew und rs.Update.
> 
> �ber zentrale Funktionen habe ich das Record-Locking realisiert, so
dass
> zwei Benutzer nicht gleichzeitig den selben Datensatz bearbeiten
k�nnen.
> 
> Freundliche Gr��e
> Joachim van de Bruck
> 
> >
> > Gruss
> >
> > Roman Pittroff
> > Consulting
> > Bangkok, Thailand
> >
> >
> > -----Original Message-----
> > From: Joachim van de Bruck [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, October 05, 2001 6:11 PM
> > To: ASP Datenbankprogrammierung
> > Subject: [aspdedatabase] AW: RE: AW: keine addition mit + in VBS
> >
> >
> > Hallo!
> >
> > Also eine Addition wird definitiv ausgef�hrt, wenn mindestens einer
> der
> > beiden Summanden numerisch ist; so ist es wenigstens bei meiner
> VBScript
> > Version.
> >
> > Also gehe ich davon aus, dass bei Dir intOrd und intUp Zeichenketten
> > sind. Hast Du "option explicit" gesetzt? Wenn nicht, findest Du
damit
> > wahrscheinlich sofort den Fehler.
> >
> > Und da ich sonst keinen Rat wei�:
> >
> > Grunds�tzlich geh�rt so etwas doch in eine Stored Procedure, oder?
> >
> > Ich meckere hier doch mindestens einmal pro Woche dagegen,
SQL-Strings
> 
> > in ASP/VBScript zusammenzustoppeln, ;-) - Das ist unperformant und
> > bringt unn�tige Fehler.
> >
> > Freundliche Gr��e
> > Joachim van de Bruck
> >
> >
> > | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> > | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv Sie
> > | k�nnen sich unter folgender URL an- und abmelden:
> > |
http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
> 
> 
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv Sie
> | k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
> 
> 
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp


| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp

Antwort per Email an