auch ein netter Weg ist (allerdings nur bei Firebird ab 2.1 glaube ich):
insert into Table (ID, ...) values (null, ...) returning ID
vielleicht muß man dann noch einen Parameter erzeugen, hängt von den verwendeten Komponenten ab - achja und einen Trigger brauchst du, der ID mit NULL automatisch generiert...
Delphi-Quellcode:
var
p: TParam;
begin
qry.SQL.Text := '... returning ID';
p := TParam.Create;
p.ParamType := ptOutput;
p.DataType := ftInteger;
qry.Params.Add(p);
qry.Execute;
ID := qry.ParamByName('ID').AsInteger;
end;
Also zumindest mit den Komponenten, die wir bei uns einsetzen, geht das...