Die Funktion zählt keine ID hoch, sondern liest nur die höchste aus.
Delphi-Quellcode:
function tFormMain.MaxID(const Tablename, KeyField: string): Integer ;
begin
qu.Close ;
qu.SQL.Text := Format('Select max(%s) as MaxID from %s', [KeyField, Tablename]) ;
qu.Open ;
Result := qu.FieldByName('MaxID').AsInteger;
end;
Ungetestet, sollte aber funktionieren.