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
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? –