Du kannst es auch folgendermaßen machen:
Delphi-Quellcode:
begin
ZReadOnlyQuery.Open; {Temp-Tabelle}
ZQuery.Open; {Main-Tabelle}
while not ZReadOnlyQuery.Eof do
begin
if ZQuery.Locate('ID', ZReadOnlyQuery.FieldValues['ID'] , []) then
ZQuery.Edit
else
begin
ZQuery.Append;
ZQuery.FieldValues['ID'] := ZReadOnlyQuery.FieldValues['ID'];
end;
{ andere Felder kopieren }
ZQuery.Post;
ZReadOnlyQuery.Next;
end;
ZReadOnlyQuery.Close;
ZQuery.Close;
end;
Ist jetzt eine Frage der Datenmenge und Laufzeit.
Was machst du denn mit Datensätzen, die in deiner Temp-Tabelle gelöscht werden? (oder geht das nicht?)