![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: egal
Firebird: Wer "locked" meinen Record?
Recordlocking
In einen Multiusersystem mit pessimistiescher Transaktionssteuerung würde ich gerne anzeigen lassen wer gerade an einem gesperrten Datensatz arbeitet. Das er gesperrt ist bekommt man gut durch ein 'dummyUptdate' heraus, aber wer da gerade noch mit zwei Fingersystem und Moorhuhn in Nebentätigkeit an einem Record bastelt fehlt mir noch. Grüße // Martin PS: als offenen Frage markiert. |
Re: Firebird: Wer "locked" meinen Record?
Müsste in einer Systemtabelle stehen.
Aber imho kann man in FireBird auf Locks verzichten |
Re: Firebird: Wer "locked" meinen Record?
Moin, moin,
Ja Erfahrungsgemäß dauert das Bearbeiten der Datensätze durch den User doch etwas länger, Deshalb geht es letztlich um eine Art Anwenderinfo, wer da gerade dran ist. Die Idee war dies nur Abzufragen, wenn man explizit einen bestimmten Datensatz bearbeiten will. Zu Systemtabellen gibt es einige ![]() Da diese Record oder Arealocks auch nur kurze Zeit bestehen können wird dies hochwahrscheinlich nicht in die Systemtabellen gespeichert, sondern nur im Speicher gehalten. Da fehlen mir derzeit Infos zur Debug-API, wo ich sowas Vermuten würde. Grüße // Martin |
Re: Firebird: Wer "locked" meinen Record?
Zwischenfazit:
Über das DBMS scheint es da keinen Weg zu geben. Bleibt also nur die Variante über Userdaten in der aktuellen Tabelle. Der Ablauf wäre dann ca. folgender: 1.- Im Grid auf Basis einer ReadOnlyQuery wird ein Datensatz angeklickt. 2.- Versuch: Eintragen der IP oder des Usernamens in ein User_ID Feld in der Tabelle und posten. 3a. Fehlschlag: Datensatz gesperrt, dann exception und Record lesen um aktuellen Nutzer anzuzeigen. 3b. Erfolg: User eintragen, posten und daruf Edit für Recordbearbeitung. Post bei Abschluss. 4.- Detailansicht-Eende und Grid-Aufruf. Na soweit im Groben // Martin |
Re: Firebird: Wer "locked" meinen Record?
Du könntest auch mit benutzerdefinierten Kontextvariablen arbeiten
|
Re: Firebird: Wer "locked" meinen Record?
Zitat:
PS: Wann schläfst Du eigenlich :wink: |
Re: Firebird: Wer "locked" meinen Record?
![]() Zitat:
|
Re: Firebird: Wer "locked" meinen Record?
Moin, Spätmoin
Ein Konzept bringe ich aktuell damit nicht auf den Weg. Jedenfalls sehe derzeit keinen Vorteil gegenüber einer eigenen Locktabelle wo Tabelle Datensatz und User sowie LockInZeit abgelegt sind (da gab es mal einen Entwickelr-Artikel). Das ich bisher nicht herausbekomme wer welche Transaktion eingeleitet hat macht die Sache nicht besser. Grüße // Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz