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"