Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
126 Beiträge
Delphi 12 Athens
|
AW: Letzte vergebene Nummer speichern
6. Aug 2022, 20: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
|