Extras - Optionen - Weitere - Datensatzsperrungen | Wann zeigen diese Einstellungen Wirkung?

25/01/2008 - 02:35 von JCF | Report spam
Hallo an die Mannschaft,

Welche Bedeutung haben die Einstellungen der Datensatzsperrung (Keine
Sperrungen, Alle Datensàtze, Bearbeiteter Datensatz) unter Extras -
Optionen - Weiter?

Wenn ich die Eigenschaften der FORMULARE für Datensatzsperrung (Keine
Sperrungen, Alle Datensàtze, Bearbeiteter Datensatz) veràndere, klappt alles
/ sieht man eine Wirkung.
Auch die verschiedenen LockEdit-Eigenschaften unter VBA klappen / zeigen
Wirkung.
Aber was passiert, wenn ich unter Extras - Optionen - Weitere die
Datensatzsperrung einstelle. Wofür ist die? Wann zeigt sie Wirkung?

Danke für den Hinweis
Johannes
 

Lesen sie die antworten

#1 Henry Habermacher
25/01/2008 - 03:56 | Warnen spam
Hallo JCF

Bitte verwende hier den Realnamen, Danke

JCF wrote:
Aber was passiert, wenn ich unter Extras - Optionen - Weitere die
Datensatzsperrung einstelle. Wofür ist die? Wann zeigt sie Wirkung?



Damit steuerst Du, wie Jet die Daten sperrt, die Du ànderst. Jet speichert
Datensàtze in Seiten (Pages) von 2kByte ab. In einer Page haben mehr als 1
Datensatz Platz. Ein Datensatz (OLE und Memo Felder nicht mit eingerechnet)
kann daher maximal 2kBytes gross sein. Wenn Du nun die Seitensperre
aktivierst, dann sind alle Datensàtze einer Page gesperrt, bis Du den
Datensatz wieder freigibst. Wenn Die Sperre auf Datensatz steht, dann können
die anderen Datensàtze innerhalb der Page geàndert werden, unabhàngig davon,
ob Du Deinen Datensatz geàndert hast oder nicht. Diese Datensatzsperre ist
aber - versàndlicherweise - langsamer, als die Sperre von Datensàtzen.
Falls Du keine Sperre einstellst, dann stellt Access beim Update sicher,
dass der Datensatz noch unveràndert ist. Es kann nàmlich nicht davon
ausgehen, dass das noch so ist, wenn es keine Schreibsperren auf die Page
oder den Datensatz angelegt hat. Dies macht dann Access indem es alle
Feldinhalte auf gleichheit mit dem ursprünglich eingelesenen Datensatz
vergleicht (oder ein Timestamp Feld verwendet, welches z.B. im SQL Server
hinzugefügt werden kann und sich bei jedem Update zwangsweise àndert).
Wenn Du eine Meldung erhalten willst, die den Benutzer beim Update darauf
aufmerksam macht, dass der Datensatz von anderen Benutzern zwischenzeitlich
geàndert wurde, dann solltest Du die Sperren deaktivieren.
Wenn Du gar nicht zulassen willst, dass ein Datensatz geàndert werden kann,
wenn dieser bereits von einem anderen Benutzer veràndert wird, dann solltest
Du entweder Seitenweise oder Recordweise sperren. Beim Seitenweise sperren
kann es dann aber eben vorkommen, dass mehrere Datensàtze nicht veràndert
werden können, weil ein Benutzer gerade einen Datensatz àndert.

Auf die Sperren zu verzichten ist im Normalfall in Access ausreichend. Damit
hast Du auch ein wesentlich kleineres Risiko (es gibt aber trotzdem eines,
z.B. wegen Indices), dass Deadlocks auftreten, das heisst eine Situation,
bei der der Benutzer einen Datensatz aus Tabelle A geàndert hat und einen
Datensatz aus der Tabelle B àndern möchte und warten muss, weil ein anderer
Benutzer einen Datensatz aus der Tabelle B geàndert hat und selber nun auf
darauf wartet, dass der erste Benutzer den Datensatz in Tabelle A freigibt,
um diesen zu àndern.

HTH
Henry


SEK2 Anmeldung: http://donkarl.com/?SEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen