![]() |
DTSRUN - Paket auf Server ausführen
Hallo zusammen,
habe folgendes Problem: Ich starte aus meinem Delphi-Programm ein DTS-Paket und warte bis es beendet ist. Da ganze klappt auch mit der unten dargestellten Routine. Nur leider wird dass DTS-Paket dann auf dem Rechner ausgeführt, auf dem auch mein Delphi-Programm läuft. Gibt es eine Möglichkeit, das DTS-Paket aus dem Delphi-Programm heraus zu starten, aber zu sagen, dass es auf dem Server ablaufen soll, auf dem es auch gespeichert ist. Weiterhin wäre es noch wichtig auch weiterhin die Rückmeldung zu erhalten, wenn das Paket beendet wurde. Die Ausführung des DTS-Paketes soll schließlich nicht die Ressourcen des lokalen PC in Anspruch nehmen, sondern vom Server selbst abgearbeitet werden.
Delphi-Quellcode:
function Tfrmmain.dts_run(dts:string): boolean;
var SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, StartInString: string; ok : boolean; begin //DTS-Dienst auf Server ExecuteFile:='\\servername\pfad\dtsrun'; FillChar(SEInfo, SizeOf(SEInfo), 0); SEInfo.cbSize := SizeOf(TShellExecuteInfo); with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpFile := PChar(ExecuteFile); //DTS-Paket (Parameter: /Server /User /Password /DTS-Paket) lpParameters := PChar(dts); nShow := SW_SHOWMINNOACTIVE; end; if ShellExecuteEx(@SEInfo) then begin frmmain.Enabled := false; repeat Application.ProcessMessages; GetExitCodeProcess(SEInfo.hProcess, ExitCode); until (ExitCode <> STILL_ACTIVE) or Application.Terminated; //Warten bis Dienst beendet ist frmmain.Enabled := true; Application.BringToFront; ok := true; end else ok := false; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz