Threads?
Entweder das
Query (mit Connection) im Thread
oder die Warteanzeige im Thread.
Für den Fortschritt selber das
Query aufteilen,
also jeweils X Datensätze kopieren.
Genau das will ich gern vermeiden, da es ziemlich aufwendig wäre diese Zerteilung noch vorzunehmen, und vor allem das ganze Gethreade zu programmieren. (D2007 war da ja noch nicht so komfortabel.) Und zudem wird es dadurch am Ende ja noch langsamer. Das wäre die Sache nicht wert.
Zitat von
Jasocul:
Gab es nicht mal eine TBatchMove-Komponente mit Callback? Damit sollte es doch eigentlich gehen. Du nutzt ja TUniQuery. Da sollte TCRBatchMove dabei sein. Dort gibt es ein OnBatchMoveProgress
Ansonsten würde ich den Prozess sowieso nicht auf einem Client ausführen, wenn so große Datenmengen verarbeitet werden sollen. Eventuell bietet sich auch noch eine Stored Procedure an. Das wäre von der Performance auf jeden Fall die bessere Variante.
Soetwas finde ich bei mir leider nicht. Wie oben geschrieben muss ich hierfür auf D2007 zurückgreifen, entsprechend alt ist auch die Uni-Version. Eventuell gab es das da einfach noch nicht
Bei einer SP dürfte es noch schwieriger sein, an einen Fortschritt zu kommen gell? Zumal: Wird nicht ohnehin eigentlich alles was im o.g. Statement, was ja ein Einzeiler ist, serverseitig ausgeführt? Der Client setzt doch bloß das Statement ab und wartet dann auf dessen Beendigung oder nicht?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)