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
