Hallo!
> Ein Z�hler soll beim l�schen eines Beitrages per Update befehle auf
"z�hler
> = z�hler - 1" runter gesetzt werden.
> Nun ist es so, dass der Z�hler hin und wieder zu hoch steht....
>
> Kann es sein, dass der Update Befehl ohne Fehlermeldung fehl schl�gt,
wenn
> der gleiche Datensatz von einem anderen User im Recordset ge�ffnet
ist. So
> viel ich wei� sind alle Record Sets Read Only, eigentlich d�rfte es da
keine
> Probleme geben. allerdings sind sie mit einem adOpenStatic Cursor
ge�ffnet.
Der Datensatz muss sowohl beim Inkrementieren als auch beim
Dekrementieren gesperrt werden, also sowohl beim Anlegen als auch beim
L�schen der Beitr�ge.
Probleme gibt es immer dann, wenn der Wert in der Datenbank zwischen dem
Lesen und Schreiben ver�ndert wird.
Am einfachsten ist es, wenn Du das Inkrementieren und Dekrementieren
direkt in der Datenbank erledigst. Erstelle z. B. folgende Prozedur:
CREATE PROCEDURE Zaehler
Inkr integer
AS
UPDATE Zaehlertabelle SET Zaehlerfeld = Zaehlerfeld + Inkr
In Access kannst Du das auch mit dem Abfrage-Assistenten machen.
Jetzt kannst Du den Z�hler �ber ein Command-Objekt bedienen, wobei Du
als Parameter entweder +1 oder -1 �bergibst:
Dim co: Set co = Server.CreateObject("ADODB.Command")
co.ActiveConnection = ConnectionString
co.CommandText = "Zaehler"
co.CommandType = adCmdStoredProc
Dim recAff
co.Execute recAff, array(+1), adExecuteNoRecords
In der Variablen "recAff" wird die Anzahl der betroffenen Datens�tze
zur�ckgegeben. "recAff" sollte also immer den Wert 1 enthalten.
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