Moin, Moin,
Folgendes knackige Problemchen zur besten Samstagsfernsehzeit verhagelt mir diese:
Arbeite an der Vergabe von Rechnugnsnummern in einem System mit Interbase-Datenbank
und meheren Clients. Die letzte Rechnungsnummer liegt in einem Integerfeld einer Datei.
'LastBillNo' : Int
'LastBillDate' : Date
Bevor eine Rechnung gedruckt wird schreibt der Client das aktuelle Datum in dad Feld
'LastBillDate, dann hole ich die durch einen Trigger erzeugte Nummer 'LastBillNo' ab.
Das ist noch nicht ganz bfehlerfrei....
Das größte Problem ist, wenn die Rechnung nicht korrekt gedruckt wird (Druckrstreik, Netwerkknoten,..)
dann ist die Nummer erhöht und die Rechnungsnummer fehlt.
Einfach erniedrigen darf ich nicht, den ein anderer Client könnte gerade ebenfalls sich eine neue Rechnungsnummer geholt haben (dann hätten zwei Rechnungen die gleiche
)
Also habe ich überlegt jetzt ein Memofeld dazuzulegen wo Rechnungsnummern von den Clients zurückgegeben werden können, wenn der Druckvorgang schiefging
'FreeBillNos' VarChar(1024)
Jetzt bräcuhte ich auf dem Server eine StoredProcedure, die erst hier nachschaut ob es noch eine
zurückgegebene Nummer gibt, die Verwendet werden kann und zunächst diese zurückgibt, bevor eine
Neue höhere Rechnungsnummer generiert wird.
Hat mit sowas jemand hier Erfahrung / Ideen / Hinweise
Grüße // Martin