Der DBGrid ist ein gnadenloser Bremser!
Habe ich selbst schon erlebt.
Ist ja auch klar, wenn man sich vorstellt, dass nach jedem neu eingefügten oder angehängten Datensatz die komplette Darstellung neu erfolgen muss.
Seitdem stelle ich bei solchen Aktionen immer um auf
DBGrid.Visible:=true;
und nach Ende der Schleife wieder auf
DBGrid.Visible:=false;
Um beobachten zu können,ob sich noch was tut, kannst Du beispielsweise im StatusBar die aktuelle Anzahl der Datensätze anzeigen.
StatusBar.Panels[0].Text:=IntToStr(DataSetXY.RecordCount);
die Anzeige evtl. auch nur alle 100 oder 1000 Datensätze aktualisieren:
Delphi-Quellcode:
if RecordCount mod 100 = 0 then
...
Probier's mal aus!
PS: die Sache mit den noch nicht abgeschlossenen Transaktionen stimmt natürlich trotzdem!
[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]