Ich würde empfehlen, einen scheduled Job anzulegen.
Du startest also nicht mit delphi die eigentliche Verarbeitung, sondern planst die Durchführung eines definierten Scripts.
Das ist ein einmaliger, kurzer Vorgang.
Dieses Vorgehen hat verschiedene Vorteile, u.a. dass man mit jedem Tool, das auf Scheduled Jobs schauen kann, diese ebenfalls transparent beobachten Monitoren, canclen, .. was auch immer kann.
Produktiv genutzt habe ich sowas bis jetzt nur auf Oracle. Daher kann ich Dir keine Details nennen. Ich kann Dir nur versichern, dass Du damit mehr Informationen bekommst und kontrollierst, als mit Deinem Delphi Programm, das lediglich als Initiator dient.
Zu den Tasks gibt es mit Sicherheit Schnittstellen (Sp und Views), die den Status, Laufzeit, Ergebnis, Fehler und viele andere Attribute des Prozesses liefern. Wenn Du in Deinem Delphiprogramm etwas Daten "mitnimmst" die aus dem Job Create kommen, kannst Du darauf bezogen mit dem Delphiprogramm auch wieder abfragen, was los ist. Ob noch was läuft, ob es einen Fehler gab, ob neu gestartet werden muss oder kann usw.
Hier ist ein Link, den es sehr wahrscheinlich auch auf Deutsch und ohne Azure gibt (und in der passenden
MSSQL Version).
https://docs.microsoft.com/en-us/sql...l-server-ver15
Mglw. ist das Ganze von der Edition abhängig. Mit der Express geht es sehr wahrscheinlich nicht.