viernes, 30 de septiembre de 2011

Ejecutar una ETL de integration Services desde C#

El siguiente fragmento de código permite ejecutar una ETL de Integration Services desde C#, se usa la referencia Microsoft.SQLServer.ManagedDTS.
    
            //Creamos una aplicación para realizar la ejecución
            Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
           //Creamos un paquete y le asignamos el que queremos ejecutar
            Package package = app.LoadPackage(@"C:\Users\JI\ETLS\Package.dtsx", null);
           //Ejecutamos el paquete
            DTSExecResult result = package.Execute();  
           //Imprimimos el resultado de la ejecución
            Console.WriteLine("Resultado de la ejecución: {0}", result.ToString());

3 comentarios:

  1. y si tengo una ETL que retorne datos (no sé que componente de Integration se debería usar para eso) y esos datos necesito manejarlos en mi capa de negocio como puedo obtenerlos sin almacenar esos datos en una Tabla??
    saludos, gracias por la ayuda

    ResponderEliminar
  2. Buenas noches, realmente creo que no es posible retornar un conjunto de datos desde una ETL, podrías guardar los datos en una tabla temporal y manipularlos desde la capa de negocios.

    ResponderEliminar
  3. Podrías agregar una variable del tipo Object en tu DataFlow la cual asignaras a un Recordset Destination (Este te pide que ingreses una variable). Después en código accedes a la variable que agregaste myPackage.Variables["myRecordset"].Value. Ya teniendo esto puedes agregar este resultado a un DataTable.

    Saludos.

    ResponderEliminar