Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#3

AW: Inhalt einer Firebird-Tabelle übernehmen

  Alt 3. Aug 2017, 15:54
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.
  Mit Zitat antworten Zitat