Zitat von
DelphiDeveloper:
exklusiver Zugriff auf Tabelle Nummernkreis anfordern (Lock)
wenn gesperrt warte...
schaue im Numernpool ob noch verwaiste Nr vorliegen
wenn ja hole satz aus nummernpool und loesch ihn dort -> fertig
wenn nix im Nummernpool
hole NEXTNumber aus Nummernkreis, incrementiere um 1 NextNumber in Nummernkreis
exklusiver Zugriff auf Tabelle zureucksetzen (unlock).
Warum nicht einfach so ohne Locking:
SQL-Code:
select NextNumber
from Nummernkreis
where id = 1
update Nummernkreis
set NextNumber = (ergebnis von obigen select + 1)
where nextnumber = (ergebnis von obigen select)
Wenn der Update Part nicht klappt wurde zwischenzeitlich bereits eine Änderung gemacht und man versucht es komplett noch einmal bis es halt klappt.
Gruß,
Marcel