Forum: Datenbanken
by Delphi.Narium,
6. Aug 2022
@BlueStarHH
Schau doch bitte mal, ob Du damit einen Ansatz bauen kannst: FireBird - Understanding the WITH LOCK clause
Syntax and behaviour
SELECT ... FROM single_table
]
Forum: Datenbanken
by Delphi.Narium,
5. Aug 2022
Wann wird denn der Generator auf 1 gesetzt?
Datumsabhängig? Dann muss das Datum, das Quartal, der wie auch immer geartete Wert, anhand dessen eine Zeitabfolge erkennbar werden könnte, mit in die Tabelle LastID.
Z. B. sowas in der Art?
insert into LastID (Reihenfolge, DeineID, Prefix, ID, Suffix, Monat, Jahr)
values (Gen_ID(GEN_Reihenfolge, 1), DeineID, a, b, c, Month(Current_Date),...
Forum: Datenbanken
by Delphi.Narium,
5. Aug 2022
Ja, aber dann ist es immernoch der mit der höchsten Reihenfolge.
select ID from LastID
where Reihenfolge =
(
select Max(Reihenfolge) as MaxID
from LastID
where Prefix = 'gesuchtes Präfix'
and Suffix = 'gesuchtes Suffix'
)
Forum: Datenbanken
by Delphi.Narium,
5. Aug 2022
Für mich immernochnicht wirkliche Klar ist: Was ist die letzte ID?
Zuerst die SP aufgerufen, zuletzt die SP aufgerufen?
Zuerst in der SP (unabhängig von der Gesamtlaufzeit) erstellte ID?
Zuletzt in der SP (unabhängig von der Gesamtlaufzeit) erstellte ID?
Der höchste Wert, der, ohne Beachtung von Prefix und Suffix, ermittelt wurde?
Forum: Datenbanken
by Delphi.Narium,
5. Aug 2022
Wir haben hier ein grundlegendes Missverständnis.
Die von mir eingeführte ID hat nichts, aber auch garnichts mit der von Dir erstellten ID zu tun.
Die GeneratorID dient ausschließlich zur Kennzeichnung der letzten DeineID in der Tabelle LastID. Sie ist absolut losgelöst vom Rest des Universums zu sehen. Sie sagt nur, wirklich nur: Das ist der zuletzt eingefügte Datensatz.
Selbst wenn die...
Forum: Datenbanken
by Delphi.Narium,
5. Aug 2022
Was heißt denn das?
Mit System, eher zufällig?
Wenn der Generator zurückgesetzt wird, müssen zeitgleich auch alle Datensätze aus der Tabelle entfernt werden. Zur Erkennung des neuesten Satzes benötigst Du einen eindeutigen Wert, der die korrekte Erkennung sicherstellt. Wenn dieser Wert allerdings "wahlfrei" zurückgesetzt oder verändert wird, ist eine eindeutige Erkennung nicht mehr...
Forum: Datenbanken
by Delphi.Narium,
5. Aug 2022
Du kannst einen Generator nutzen:
Dazu benötigst Du eine weitere Tabelle in der Form:
create Table LastID
(
GeneratorID Integer not null,
DeineID Integer not null -- oder welcher Type das auch immer sein mag.
);