Ich mache das nach jedem Ermitteln einer neuen ID immer wie folgt:
Delphi-Quellcode:
function TGetMaxID.GetMaxID: integer;
begin
with TFDQuery.Create(
nil)
do
try
Connection := fConnection;
sql.add('
SELECT IdentityCol');
sql.add('
FROM MaxTable');
sql.add('
WHERE UPPER(rowguid) = :rowguid');
Params[0].Value := AnsiUpperCase(fRowGuid);
Prepare;
open;
Result := Fields[0].asInteger;
// Bis auf die letzten 10 Einträge alle Daten aus ID-Tabelle löschen
sql.clear;
sql.add('
DELETE FROM MaxTable WHERE ID_Max+10 <= :ID_Max');
Params[0].DataType := ftInteger;
Params[0].Value := Result;
Prepare;
ExecSQL;
finally
Free;
end;
end;