Einzelnen Beitrag anzeigen

Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: interne Sperrtabelle in FB

  Alt 16. Okt 2008, 08:36
Danke das führt doch schonmal einen Schritt weiter...

Ich würde gerne eine Übrsicht haben wieviele und welche Datensätze aktuell nicht änderbar, da in Anwenderbearbeitung (nicht internes sperren), sind.


Zitat von hoika:
eine Alternative ist das Locken selber zu machen
-> LockTable(Id,TableId/TableName,PrimKey,LockDate/LockTime)

Ist etwas aufwändiger, klappt aber mit jeder DB,
die halbwegs Transaktionen und unique indices unterstützt.
Das Prüfen, ob Lock existiert erfolgt durch ReadCommitted Transactions.

Der Trick ist das LockDate/LockTime
das wird vom lockende Programm ständig aktualisiert, um "tote" Locks
(Programm ist abgstürzt) zu finden.
Hoika schlägt vor, dass mit einer eigenen Sperrtabelle zu machen. Das geht schon, aber letzlich muß
FB auch intern wissen welche Transaktionen noch am laufen sind und welcher Record / welche Records
davon betroffen sind. Möchte auf alle Fälle verhindern das ein User Änderungen gemacht hat und sie
dann nicht in die Datenbank eintragen kann, da der Satz gerade gesperrt ist.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat