senuba
Goto Top

Locking bei SQL-Sichten

Hallo liebe Community,

Wir verweden ein Access Frontend mit SQL-Server als Backend.
Nun gibt es im Frontend Comboboxen, mit welchen man aus allen Datensätzen einer Tabelle ausählen kann.
Soweit ich weiß, holt Access sich nicht gleich alle Spalten sondern nur die angezeigten und noch ein paar mehr, damit man scrollen kann.
Nun bleibt aber die Abfrage solange geöffnet wie diese Liste der Combobox angezeigt wird.

Daher ist es einem anderen User nicht möglich, Änderungen an einem Datensatz zu machen.

Kann hier eine SQL-Sicht helfen?

Meine Idee: ich greife mit der Combobox auf die SQL-Sicht zu, somit ist die Sicht gelocked, nicht jedoch die Tabelle selbst.

Doch kann es nun eventuell sein, dass die Sicht dann aber selbst dafür die Tabelle locked?

Oder fallen Euch noch andere Lösungsansätze ein, wie ich zwar mit einer Liste aus allen Datensätzen wählen kann, diese aber nicht das Editieren der Datensätze selbst sperrt?

Okee ich hoffe jemand kann mit meinen wirren Gedanken etwas anfangen und mir bei diesem Problem weiterhelfen

Content-ID: 167685

Url: https://administrator.de/contentid/167685

Ausgedruckt am: 20.11.2024 um 07:11 Uhr

Indrador
Indrador 14.06.2011 um 08:58:13 Uhr
Goto Top
Hallo,

du könntest folgendes Versuchen:

1. deine Abfrage mit nolock zu schreiben (hier weiß ich nicht, ob das Access Frontend das kann)
2. eine View mit nolock bzw. readuncommited bauen

http://msdn.microsoft.com/de-de/library/ms187373.aspx

Also

Create view view_test
as
select *
from test with (nolock)
Senuba
Senuba 30.06.2011 um 12:44:17 Uhr
Goto Top
Hi,

erstmal möchte ich mich für deine Antwort bedanken.

Die Idee mit dem NOLOCK, kam mir nun irgendwann auch schon, jedoch unterstützt Access das WITH(NOLOCK) nicht
Daher kam ich auf die Idee eine PASSTHROUGH Abfrage zu machen, diese bringt jedoch eine etwa 2 Sekündige Verzögerung mit sich, wahrscheinlich weil die Verbindung zum SQL-Server jedesmal neu Aufgebaut wird

Aber die Idee das in die Sichten zu Verlagern, schau ich mir nochmal an