Grobes Vorgehen bei einer Schleife über eine Tabelle ...
Delphi-Quellcode:
while not DataModuleArtikelAngebot.IBDataSetArtikelTemp.EoF do begin
DatamoduleAuftrag.IBDataSetPositionen.Append;
... Wertezuweisungen
DatamoduleAuftrag.IBDataSetPositionen.Post;
DataModuleArtikelAngebot.IBDataSetArtikelTemp.Next;
end;
In Deinem Quelltext befindet sich das Post ausserhalb der Schleife, es gehört aber zu jedem Append ein Post. Das ist in Deinem Quelltext nicht gegeben.
Am Ende fragst Du nach, ob eine Transaktion offen ist, wenn ja, wird ein Commit gemacht. Im Quelltext wird aber keine Transaktion gestartet, so dass auch das Commit nie ausgeführt wird.
Wenn die Tabellen strukturell identisch sind, dürfte ein
insert into NeueTabelle select * from AlteTabelle
ausreichen und deutlich schneller sein.
Stimmen die Strukturen nicht überein, müssen halt die Spalten aufgeführt werden, ist nur etwas Schreibarbeit, aber sicherlich deutlich weniger Aufwand, als das zu programmieren.