none
Ejecutar un archivo dtsx desde proyecto VB RRS feed

  • Pregunta

  • Hola,

    Agradeceré me comenten sobre el siguiente problema.

    Hemos generado un proyecto de Integration Services con VB 2012 que trabaja sin problemas en ambiente de desarrollo. (somos neófitos en esta área)

    Necesitamos ahora integrarlo a un proyecto VB de escritorio y hemos seguido las instrucciones de Microsoft, copiando el código y reemplazando la ruta del archivo dtsx al que nosotros hemos creado.

    El problema es que no se ejecuta.  Dejo a continuación el código  y el error, quedando a la espera de vuestra ayuda.  Gracias de Antemano.

    El error:

    Excepción no controlada del tipo 'Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException' en Microsoft.SqlServer.ManagedDTS.dll

    Información adicional: The package failed to load due to error 0xC0011008 "Error loading from XML. No further detailed error information can be specified for this problem because no Events object was passed where detailed error information can be stored.". This occurs when CPackage::LoadFromXML fails.

    El Código:

    Imports Microsoft.SqlServer.Dts.Runtime
    
    Public Class Prueba
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim pkgLocation As String
            Dim pkg As New Package
            Dim app As New Application
            Dim pkgResults As DTSExecResult
    
            'pkgLocation = "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
            pkgLocation = "C:\Proyectos\Vb-2013\Integracion\Proyecto de Integration Services2\Proyecto de Integration Services2\bin\Development\ETL_Cantata.dtsx"
            pkg = app.LoadPackage(pkgLocation, Nothing)
            pkgResults = pkg.Execute()
    
            lblStatus.Text = pkgResults.ToString
    
            'Console.WriteLine(pkgResults.ToString())
            'Console.ReadKey()
    
        End Sub
    Saludos,


    Manuel Luengo Gaete

    miércoles, 17 de junio de 2015 21:11

Respuestas

  • pueden suceder dos cosas

    1.- En tu máquina local donde ejecutas la aplicación no está el cliente SQL Server necesario para ejecutar el paquete.

    2.- Los paquetes tienen una propiedad llamada Protection Level, esa propiedad marca como se encripta la información si es necesario. Lo normal es que esté en "Encryypt Sensitive with user key"  y si el usuario con el que ejecutas este programa no es el mismo que creó los paquetes puede no poder sacar esa información.

    La forma en la que yo prefiero hacer este tipo de cosas, es crear un job en el server y lanzar el paquete simplemente con el procedimiento almacenado sp_start_job que está en la base de datos msdb. Así el paquete se ejecuta en el servidor y no en la máquina donde tengas esta aplicación. Si además has creado el SSIS catalog, yo creo que este artículo puede darte mucha luz. 

    https://msdn.microsoft.com/en-us/library/jj820152.aspx


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    domingo, 21 de junio de 2015 19:13
    Moderador