AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Anwendung reagiert während ausführen von SSIS Paket nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung reagiert während ausführen von SSIS Paket nicht

Ein Thema von Boppe · begonnen am 19. Jan 2008 · letzter Beitrag vom 19. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#1

Anwendung reagiert während ausführen von SSIS Paket nicht

  Alt 19. Jan 2008, 16:53
Hallo Zusammen!
Ich erstelle im Moment eine Anwendung die verschiedene Datenaufbereitungsjobs erledigt und anschließend die erstellten Daten per DTS auf einen anderen MSSQL Server überträgt. Soweit so gut!

Um die einzelnen Schritte für den Nutzer zu veranschaulichen werden aktueller Status und Ergebnisse in einem Grid ausgegeben. Leider reagiert während der Übertragung meine Hauptanwendung gar nicht mehr.

Hab mir überlegt das ganze mit Threads zu realiseren allerdings steh ich im Moment irgendwie im Wald und hab keine Ahnung wie ich anfangen soll.

Hat jemand ne Idee oder nen Ansatz?

Code:
uses DTSLib_TLB;
.
.
function DoSSISPackage(DTSXFile: string):DTSExecResult;
var
  pkg        : IDTSPackage90;
  app        : TApplication;
  pkg_result : DTSExecResult;
begin
  app := TApplication.Create(nil);
  pkg := app.LoadPackage(DTSXFile, True, nil);
  pkg_result := pkg.Execute_;
  app.Free;
  result := pkg_result;
end;
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 16:57
ich bin mir nicht sicher, aber versuch es mal mit:
Application.ProcessMessages;
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 17:01
Naja ganz so einfach ist es nicht!

Application.ProcessMessages würde mir was bringen wenn ich die Funktion z.B. in einer Schleife ausführen würde. Das ausführen des Paketes ansich dauert ca. 10 Minuten
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 18:52
Schau dir doch mal die Beispiele zu Threads an.

Anschließend packst du den Code in die Execute-Methode des Threads. Ergänzt CoInitialize am Anfang und CoUninitialize am Ende, definierst den übergabeparameter DTSXFile als Property des Threads und schon sollte es klappen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 19:34
Hallo Bernhard!
Besten Dank für die Antwort! Habe nun alles in einen Thread gepackt. Allerdings happert es noch mit den "CoInitialize". Was übergeb ich hier? Pointer!? Auf was?

Gruß
Chris
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 19:47
Probier erstmal CoInitialize(nil);
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 20:02
Hatte ich schon versucht.
Leider bringt das alles nichts. Meine Anwendung steht nach wie vor wenn Sie das Paket ausführt.

Hier nochmal der neue Quelltext mit Thread.

Delphi-Quellcode:
type
  TDTSThread = class(TThread)
  private
    FDTSXFile: string;
    procedure Execute; override;
    procedure SetDTSXFile(DTSXFile: string);
  protected
    property DTSXFile: string write SetDTSXFile;
  end;
.
.
.
procedure TDTSThread.Execute;
var
  DTSpkg : IDTSPackage90;
  DTSApp : TApplication;
  pkgResult : DTSExecResult;
  pkgEvents : IDTSEvents90;
begin
  CoInitialize(nil);
  DTSApp := TApplication.Create(nil);
  DTSpkg := DTSApp.LoadPackage(FDTSXFile, True, pkgEvents);
  pkgResult := DTSpkg.Execute(nil,nil,nil,nil,nil);
  DTSApp.Free;
  CoUninitialize();
end;
.
.
// Aufruf
DTSThread := TDTSThread.Create(True);
DTSThread.FDTSXFile := ExtractFilePath(Forms.Application.ExeName)+'\DTS\ExportDatenaufbereitung.dtsx';
DTSThread.Execute;
Hab es noch ein bisschen modifiziert, da ich zukünftig die Events mitloggen will.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 20:26
[quote="Boppe"]

DTSThread.Execute; Autsch! Du führst die Execute-Methode im Hauptthread aus. Du solltest schon den Thread richtig starten (Aus dem Kopf: Suspended := False).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 20:31
Eher DTSThread.Resume.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Anwendung reagiert während ausführen von SSIS Paket nich

  Alt 19. Jan 2008, 20:49
Ääääähhhhmm! tja was soll ich sagen....
Ich glaube jede weitere Peinlichkeit spar ich mir für heute und sag einfach Danke! Funktioniert jetzt alles perfekt.

Gruß
Chris
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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