Hallo,
Locking mittels
ADO geschieht standardmäßig und vollautomatisch auf Page-Level (2048 Byte), sodass in der Regel mehr als ein Record gesperrt wird. Der Entwickler kann aber der automatischen Lock Escalation reinpfuschen, wenn er Sperren auf RecordSet- oder Database-Level anfordert.
ODBC bietet keine Locking Funktionalität und sollte
ADO über
ODBC eingestzt werden, dann ignoriert
ODBC Sperrversuche solange es geht und bringt ansonsten Fehlermeldungen.
Bei den automatischen Sperrmechanismen lässt sich noch der LockMode einstellen: Optimistic oder Passimistic.
SQL-Server arbeiten in der Regel optimistisch (Sperren so spät wie möglich),
Access und Co. mit pessimistischen (so früh wie möglich) Sperren.
Es ist Aufgabe des Entwicklers auf die Fehler zu reagieren, die durch konkurrierende Zugriffe im Mehrbenutzerbetrieb auftreten. Die Sperren selbst werden optimal von der Transaktionskontrolle der
DB-Engine verwaltet.
Grüße vom marabu