Laut Beschreibung/Überschrift woller er ja nicht die größte Nummer, sondern die Letzte, also
SELECT knr FROM tbteilnehmer ORDER BY xxx DESC LIMIT 1
xxx = akn
oder nach was auch immer die Daten sortiert sein sollen (z.B. insert_date oder so)
Ansonsten wäre sein Code auch irgendwie falsch.
Delphi-Quellcode:
LastKNr := -1; // warum hast du die Variable nicht initialisiert? Was soll denn rauskommen, wenn es keine Datensätze gibt!
while not SQLQueryLastKNr.Eof do
begin
if LastKNr < SQLQueryLastKNr.FieldByName('knr').AsInteger then
LastKNr := SQLQueryLastKNr.FieldByName('knr').AsInteger;
SQLQueryLastKNr.Next;
end;