2009-08-06 17 views
10

Ho pianificato un'attività dell'agente sql che esegue un pacchetto SSIS. Voglio essere in grado di eseguire il pacchetto SSIS da .net. Esiste un modo per eseguire direttamente il pacchetto SSIS o almeno eseguire l'attività dell'agente SQL che a sua volta eseguirà il pacchetto SSIS.È possibile eseguire un'attività SSIS da .net?

Se aiuta è per un NET 3.5 web app scritto in C#

Grazie!

risposta

11

Le opzioni che sono a disposizione per eseguire un pacchetto SSIS sono -

  • pacchetto Run programmazione utilizzando SSIS Object Model. Questo è discusso in dettaglio nella documentazione online here.

Un esempio:

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(); 
     } 
    } 
} 
  • processo di avvio DTExec.exe. DTEXEC è un'utilità da riga di comando per l'esecuzione di pacchetti SSIS. Vedi le sue opzioni da riga di comando here.

  • Utilizzare SQL Agent. È possibile configurare un processo dell'agente per l'esecuzione del pacchetto (eseguirlo manualmente in anticipo se il pacchetto è statico, o utilizzando SMO a livello di programmazione o utilizzando le stored procedure SQL appena prima di eseguire il pacchetto), quindi avviarlo a livello di programmazione utilizzando SMO o sp_start_job.

  • Utilizzare qualche altra utilità per avviare DTEXEC per l'utente.

  • Creare un'applicazione personalizzata che eseguirà il pacchetto (utilizzando OM come descritto nel metodo # 1 o utilizzando DTEXEC come nel metodo # 2). Esibialo come servizio Web o classe DCOM, chiama questo servizio dal tuo programma.

  • inventare il proprio :)

Riferimento: Running SSIS Package Programmatically

+0

Im usando la soluzione per un Winform. Sto ottenendo gli squigglies rossi come segue: 'Application app;', 'app = new Application();', e 'pkg = app.LoadPackage (pkgLocation, null)'; con le seguenti eccezioni: 'Errore 'Applicazione' è un riferimento ambiguo tra 'System.Windows.Forms.Application' e 'Microsoft.SqlServer.Dts.Runtime.Application' \t' e 'Errore Il tipo' System.Windows.Forms.Application 'non ha definito costruttori' - cosa devo cambiare per Winform? –

0

Sì. Cerca nello spazio dei nomi Microsoft.SqlServer.Dts.Runtime. La classe Package fornirà i metodi per eseguirla.

Problemi correlati