Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Record Locking mit Delphi

  Alt 24. Jun 2007, 13:33
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
  Mit Zitat antworten Zitat