AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Letzte vergebene Nummer speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Letzte vergebene Nummer speichern

Ein Thema von BlueStarHH · begonnen am 3. Aug 2022 · letzter Beitrag vom 7. Aug 2022
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.599 Beiträge
 
Delphi 7 Professional
 
#12

AW: Letzte vergebene Nummer speichern

  Alt 5. Aug 2022, 18:25
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?

Der Moment, in dem in der SP die ID feststeht, unabhängig von der Laufzeit der davor und der danach auszuführenden Teile der SP?

Post #8 und #12 geben mir da noch nicht ausreichend Klarheit.

Eventuell könnte man die Tabelle LastId noch etwas aufbohren:

SQL-Code:
create Table LastID
(
  Reihenfolge BIGINT not null,
  DeineID Integer not null, -- oder welcher Type das auch immer sein mag.
  Prefix VarChar(32), -- oder wie lang Präfix auch immer maximal lang sein mag
  ID Integer,
  Suffix VarChar(32) -- oder wie lang Suffix auch immer maximal lang sein mag
);
CREATE GENERATOR GEN_Reihenfolge;
SET GENERATOR GEN_Reihenfolge TO 0;

-- in der SP an geeigneter Stelle:
insert into LastID (Reihenfolge, DeineID, Prefix, ID, Suffix) values (Gen_ID(GEN_Reihenfolge, 1), DeineID, a, b, c);
Dann könnte die letzte ID z. B. sinngemäß in der Art ermittelt werden:
SQL-Code:
select ID from LastID
where Reihenfolge =
(
  select Max(Reihenfolge) as MaxID
  from LastID
  where Prefix = 'gesuchtes Präfix
  and Suffix = 'gesuchtes Suffix'
)
Aber nach Deinem letzten Einwand dürfte sich das Problem auch nur örtlich, aber nicht zeitlich, verlagern.

Oder:
SQL-Code:
SP
begin
  insert into LastID (Reihenfolge, DeineID) values (Gen_ID(GEN_Reihenfolge, 1), ErzeugeMeineID);
end;
Inzwischen ahne ich, wo das konkrete Problem zu suchen ist und nein, eine wirkliche Lösung fällt mir dazu nicht ein
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz