AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sql-Statement für kleinste nicht vorhanden Nummer
Thema durchsuchen
Ansicht
Themen-Optionen

Sql-Statement für kleinste nicht vorhanden Nummer

Ein Thema von barnti · begonnen am 17. Okt 2003 · letzter Beitrag vom 17. Okt 2003
 
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: Sql-Statement für kleinste nicht vorhanden Nummer

  Alt 17. Okt 2003, 17:16
Hallo Leute,

das ist alles ganz ok nur kommen bei mir noch einige randbedingungen hinzu.

Ich löse das jetzt folgendermassen:

Es gibt zwei Tabellen:

Eine Stück-Tabelle, also die mit der gearbeitet wird

und eine Pool Tabelle, in der sich alle freien IDs befinden.

Wird nun in der Stücktabelle ein Datensatz angelegt so wird inkrementell geschaut, ob die ID bereits vorhanden Ist. Etwa so

Delphi-Quellcode:

Fuction IDErzeugen(ID: String): String;

begin
  if ID < 1000 then
     begin
       if Query.locate(nummer) then
          result:= nummer;
       else
          result:= IDErzeugen(Nummer+1);
     end
  else
     begin
       result:= FindeIDInPool(nummer);
     end
end;


Function FindeIDInPool(Nummer: String): String;
begin
  try
    QueryPool.locate
  except
    result:= nummer+1;
   end;
end;
So erzeuge ich eine ID die möglichst unter 1000 liegt. Werte die in der StückTabelle entfernt werden, werden mit einem Ende Datum versehen, das ein Teil des Schlüssels ist....

Wie gesagt: sind kompliziertere Bedingungen....

Danke für die rege Beteiligung, Gruß,

Barnti
  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 11:01 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 by Thomas Breitkreuz