2009-08-06 6 views
10

Mam zaplanowane zadanie agenta sql, które uruchamia pakiet SSIS. Chcę móc uruchomić pakiet SSIS z .net. Czy istnieje sposób, aby uruchomić pakiet SSIS bezpośrednio lub przynajmniej uruchomić zadanie agenta SQL, które z kolei uruchomi pakiet SSIS.Czy można uruchomić zadanie SSIS z .net?

Jeśli to pomoże to dla .NET 3.5 web app napisany w C#

Dzięki!

Odpowiedz

11

opcje, które są dostępne do uruchomienia pakietu SSIS są -

  • Run pakiet SSIS programowo przy użyciu modelu obiektów. Jest to omówione szczegółowo w Books Online here.

przykład:

using System; 
using Microsoft.SqlServer.Dts.Runtime; 

namespace RunFromClientAppCS 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string pkgLocation; 
      Package pkg; 
      Application app; 
      DTSExecResult pkgResults; 

      pkgLocation = "<package path>\CalculatedColumns.dtsx"; 
      app = new Application(); 
      pkg = app.LoadPackage(pkgLocation, null); 
      pkgResults = pkg.Execute(); 

      Console.WriteLine(pkgResults.ToString()); 
      Console.ReadKey(); 
     } 
    } 
} 
  • rozpoczęcia procesu DTEXEC.EXE. DTEXEC to narzędzie wiersza poleceń do wykonywania pakietów SSIS. Zobacz opcje wiersza poleceń: here.

  • Użyj agenta SQL. Możesz skonfigurować zadanie agenta, aby uruchomić pakiet (wykonaj to ręcznie z góry, jeśli pakiet jest statyczny, lub programowo używając SMO lub używając procedur składowanych SQL tuż przed uruchomieniem pakietu), a następnie uruchom go programowo za pomocą SMO lub sp_start_job.

  • Użyj innego narzędzia do uruchomienia DTEXEC dla siebie.

  • Utwórz niestandardową aplikację, która uruchomi pakiet (używając OM jak opisano w metodzie nr 1 lub używając DTEXEC jak w metodzie nr 2). Wyeksponuj go jako usługę internetową lub klasę DCOM, wywołaj tę usługę ze swojego programu.

  • Invent własne :)

referencyjny: Running SSIS Package Programmatically

+0

Im przy użyciu rozwiązanie dla Winform. Dostaję czerwone zawijasy pod następującymi: 'Aplikacja aplikacji;', 'app = new Application();' i 'pkg = app.LoadPackage (pkgLocation, null)'; z następującymi wyjątkami: "Błąd " Aplikacja "jest niejednoznacznym odnośnikiem pomiędzy" System.Windows.Forms.Application "i" Microsoft.SqlServer.Dts.Runtime.Application "\t' i 'Błąd Typ ' System.Windows.Forms.Application "nie ma zdefiniowanych konstruktorów" - co muszę zmienić w Winformie? –

0

Tak. Zajrzyj do przestrzeni nazw Microsoft.SqlServer.Dts.Runtime. Klasa Package zapewni metody do jej uruchomienia.