Sperre von Datensätzen , A2K3 und MSSQL2000

14/01/2009 - 19:01 von Herbert Gottlieb | Report spam
Hallo,

gibt es hier irgendwelche Einstellungen die man berücksichtigen muss, bei
Access mit SQL-Server??
Mein Problem:
Am Server werden 3 Tabellen verknüpft und als View gespeichert, diese wird
in Access als Tabelle verknüpft.
In Access gibt es dann eine Abfrage mit einer Where Bedingungung , die einen
Datensatz retour liefert und diese ist einem Formular als Datenquelle
zugewiesen.

Problem1: Wenn ich Änderungen mit einem Recordset auf eine der drei Tabellen
durchführen möchte ist das nicht möglich.
Meine Lösung ist: Recordsource= ""; Änderung in Tabelle durchführen,
Recordsource="Abfrage"

Problem2: Wenn jetzt ein zweiter Benutze das Formular geöffnet hat (und zb.
einen anderen Datensatz anzeigt) kann ich die daten nicht àndern und bekomme
ein Timeout.
Wenn ich auf dem einem Rechner die Änderung speichere bekomme ich die
Sanduhr und in dem moment wo iuch am anderen Rechner das Formular schließe,
geht der Speichervorgang OK (d.h. genauer gesagt, das r.edit ist bereits
nicht möglich)

Hat hier jemand einen Tipp für mich?

Danke,
Herbert
 

Lesen sie die antworten

#1 Josef Poetzl
17/01/2009 - 11:23 | Warnen spam
Hallo!

Herbert Gottlieb schrieb:
gibt es hier irgendwelche Einstellungen die man berücksichtigen muss, bei
Access mit SQL-Server??
Mein Problem:
Am Server werden 3 Tabellen verknüpft und als View gespeichert, diese wird
in Access als Tabelle verknüpft.
In Access gibt es dann eine Abfrage mit einer Where Bedingungung , die einen
Datensatz retour liefert und diese ist einem Formular als Datenquelle
zugewiesen.

Problem1: Wenn ich Änderungen mit einem Recordset auf eine der drei Tabellen
durchführen möchte ist das nicht möglich.
Meine Lösung ist: Recordsource= ""; Änderung in Tabelle durchführen,
Recordsource="Abfrage"



Das funktioniert aber auch nur, wenn ein einziger Benutzer aktiv ist,
oder?

Problem2: Wenn jetzt ein zweiter Benutze das Formular geöffnet hat (und zb.
einen anderen Datensatz anzeigt) kann ich die daten nicht àndern und bekomme
ein Timeout.
Wenn ich auf dem einem Rechner die Änderung speichere bekomme ich die
Sanduhr und in dem moment wo iuch am anderen Rechner das Formular schließe,
geht der Speichervorgang OK (d.h. genauer gesagt, das r.edit ist bereits
nicht möglich)

Hat hier jemand einen Tipp für mich?



Ich hatte einmal einen àhnlichen Fall in einer SQL2000-DB. Eine
Prozedur, die als Datenquelle (ADODB-Rs an Form gebunden) für eine
Übersichtsliste verwendet wurde, sperrte die Datensàtze einer
enthaltenen Tabelle. Diese Verhalten stellte sich erst nach langer
Betriebszeit der DB ein. Zuvor gab es diesen Lock nicht.
Als Notlösung setzte ich erstmal die Option "WITH (NOLOCK)" im
From-Teil der select-Anweisung, damit zumindest weiter gearbeitet
werden konnte.
In einer Testumgebung war dieses Verhalten mit einer Kopie der DB
nicht nachstellbar. .. eine Woche spàter war es auch in der
"Problem-DB" nicht mehr vorhanden.
=> Ursache u. Problemlösung kenne ich keine - nur eine Problemumgehung
mit NOLOCK. ;-)


mfg
Josef

EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/

Ähnliche fragen