Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wie fortlaufende Nr. in DB-Taballe erzeugen? Generator nicht möglich?

  Alt 7. Nov 2014, 15:41
Guten Tag,
Wie wäre es mit
Delphi-Quellcode:
Select count(*) as AnzBuchungen from Table
where kontonr = :pKontoNr
Allerding hättest Du wieder doppelte Nummern wenn ein Datensatz für ein Konto gelöscht wird.
Dies kann aber übergangen werden, wenn Du in der Tabelle eine Spalte "geloescht = J/N' führst
Sollte eine Buchung gelöscht werden dann setzt Du den Wert auf "J".
Damit kannst Du ja die Daten so selektieren:
select * from table where geloescht = 'N' Für die nächste Nummer wäre so ein Konstrukt evtl hilfreich:
Delphi-Quellcode:
select count(*) as Anzahl from table where geloescht = 'N'
and KontoNr = :pKontoNr
Gruß HPB
Hi HPB,

danke, das geht aber nicht denn es gibt beim "count" das selbe Problem wie beim "max-Wert":

Zitat:
Auf dem Client den Max-Wert der BuchungNr für ein bestimmtes Konto mit SQL holen scheidet wohl aus, da in der Zeit wo die Abfrage ausgeführt wird, ein anderer Client dazwischenfunken könnte.
Ich versuche es nochmal deutlicher zu machen. Client A fragt per SQL den count/max-Wert ab. Bevor er den neuen Datensatz posten kann, haben die Clients B und C ebenfalls den count/max-Wert abgefrag. Alle 3 Clients haben dann den selben count/max-Wert und wollen den selben Wert posten. Wer dann zuerst posted hat gewonnen und bei den anderen beiden Clients gibt es eine Fehlermeldung der Art "Buchungsnummer nicht eindeutig"

Geändert von BlueStarHH ( 7. Nov 2014 um 15:43 Uhr)
  Mit Zitat antworten Zitat