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