Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DTSRUN - Paket auf Server ausführen (https://www.delphipraxis.net/31753-dtsrun-paket-auf-server-ausfuehren.html)

griesson 13. Okt 2004 11:39


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 00:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz