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.