Hi X-Dragon,
ich schätze, Deine Frage hat doch was mit
SQL zu tun. Der Zusatz MAX in der
SQL Abfrage liefert statt eines möglicherweise riesigen Recordsets nur einen einzigen Datensatz zurück. Hier eine Funktion, die Dir die letzte ID aus einer beliebigen Tabelle zurück gibt. Die Funktion erwartet den Tabellennamen und den Feldnamen des ID-Feldes:
Delphi-Quellcode:
function TDM.GetMaxID(ATable, AField :
string): longint;
var
vSQL :
string;
begin
vSQL := '
SELECT MAX (' + AField + '
) FROM ' + ATable;
result := 0;
with Query1
do try
if Open
then Close;
SQL.Clear;
SQL.Add(vSQL);
ExecQuery;
// oder Open, je nach Komponente
if RecordCount > 0
then
if Fields[0].Value <> NULL
then result := Fields[0].Value;
finally
Close;
end;
end;
Der Aufruf sähe dann beispielsweise so aus:
vLastId := GetMaxID('Mitarbeiter', 'Mit_ID');
gruß, harrybo