Einzelnen Beitrag anzeigen

bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
124 Beiträge
 
Delphi 12 Athens
 
#30

AW: Letzte vergebene Nummer speichern

  Alt 6. Aug 2022, 19:41
Man kann in Firebird einen Generator als "Sperre" und zum Prüfen, ob Du loslegen darfst verwenden.

Z.B.
Generator mit 0 initialisieren (Irgendwann mal, wenn kein Programm läuft)

Im Programm (oder Stored Procedure)
Einfach wert des Generators erhöhen.
Wenn = 1 dann mache, was Du tun musst, kein anderer kommt Dir in die Quere
Wenn > 1 reduziere den Generator um 1 und brich ab.

Das läuft super, außer die Prozedur bricht ab, wenn der Generator auf 1 steht, denn dann bleibt die Sperre auf ewig. Muss dann vom Admin wieder auf 0 gesetzt werden, wenn kein Programm läuft.

Das Vorgehen ist einfacher, als in einer Tabelle mit LOCK einen Satz zu sperren.
Björn Reimer
  Mit Zitat antworten Zitat