AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird: logische Datensatz-Sperre, die immer funktioniert
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird: logische Datensatz-Sperre, die immer funktioniert

Ein Thema von hoika · begonnen am 4. Sep 2009 · letzter Beitrag vom 5. Sep 2009
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

Firebird: logische Datensatz-Sperre, die immer funktioniert

  Alt 4. Sep 2009, 12:16
Datenbank: FB • Version: 1.5 • Zugriff über: egal
Hallo #,

habe gerade einen netten Problem.

Ein logischer Datensatz soll gesperrt werden,
logisch deshalb, weil das zu speichernde Objekt
intern in mehrere Tabellen gespeichert wird.

Ich kenne "Ich sperre, also bin ich" (Entwickler von anno dazumal).

Dort wurd in etwa folgendes gemacht:
- Lock-Tabelle
- Lock-Eintrag wird versucht eizutragen
(unique index sichert die Eindeutigkeit des Log-Eintrag ab)
- per Timer Lock-Datum ständig aktualisieren
(falls Rechner abstürzt, kann eine zu alte Sperre ignoriert werden)

Wo ich gerade hänge, war die Forderung "read commited" als TIL einzustellen.
Reicht denn der unique index nicht aus ?
Spätestens beim Commit der Transaktion knallt es doch, und man kann dem User sagen
"Datensatz gesperrt".


Die Frage ist also:
Reicht ein unqiue index aus, um die Eindeutigkeit eines Datensatzes zu gewährleisten ?
Ich denke: ja.


Heiko

PS:
Bitte keine Sprüche wie "update table set id=1 where id=1 ".
Der Datensatz muss auch gesperrt werden, wenn er noch gar nicht existiert,
der Nutzer also noch nicht gespeichert hat.
(Ich speicher nicht die DB-ID direkt, das hat andere Gründe).
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Firebird: logische Datensatz-Sperre, die immer funktioni

  Alt 5. Sep 2009, 10:20
Hallo,

erledigt.
Ich habe mir den Artikel noch mal durchgelesen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz