none
SSIS und VB Auslesen des Result RRS feed

  • Frage

  • Hallo,

    ich starte ein SSIS2008-Packet von einer VB 6.0-Exe aus mit folgendem Code:

        Dim pkgLocation As String
        Dim app As New DTSLib.Application
        Dim pkgResults As DTSExecResult
        Dim pkgcontainer As IDTSContainer100
        Dim pkg As IDTSPackage100
        Dim pkgConnections As IDTSConnections100
        Dim variab As IDTSVariable100
       
        pkgLocation = "D:\My.dtsx"
        Set pkg = app.LoadPackage(pkgLocation, True, Nothing)
        
        Set pkgcontainer = pkg
        pkgcontainer.Variables("User::strSQL").Value = sql
       
        pkg.Execute

    Jetzt würde ich gerne noch in der VB-exe eventuelle Fehlermeldungen auslesen. In Dts2000 ging das so:

        ' Get Status and Error Message
        For Each oStep In oPKG.Steps
            If oStep.ExecutionResult = DTSStepExecResult_Failure Then
                oStep.GetExecutionErrorInfo lErr, sSource, sDesc
                sMessage = sMessage & "Step """ & oStep.Name & _
                    """ Failed" & vbCrLf & _
                    vbTab & "Error: " & lErr & vbCrLf & _
                    vbTab & "Source: " & sSource & vbCrLf & _
                    vbTab & "Description: " & sDesc & vbCrLf & vbCrLf
            Else
                sMessage = sMessage & "Step """ & oStep.Name & _
                    """ Succeeded" & vbCrLf & vbCrLf
            End If
        Next

    Wie muss ich das jetzt für die SSIS schreiben?

    Vielen Dank im voraus und herzliche Grüße

    Andreas

    Montag, 6. Juni 2011 13:09

Antworten

  • Hallo Robert,

     

    vielen Dank für die Tipps, ich habe die Lösung bereits gefunden. Ich wollte sie auch noch posten, habs allerdings vergessen, darum hole ich das gleich nach:

        Dim sMessage As String
        Dim errors As IDTSErrors100
        Dim error As IDTSError100
        Dim sql As String

        Dim pkgLocation As String
        Dim app As New DTSLib.Application
        Dim pkgResults As DTSExecResult
        Dim pkgcontainer As IDTSContainer100
        Dim pkg As IDTSPackage100
        Dim pkgConnections As IDTSConnections100
        Dim variab As IDTSVariable100
       
        pkgLocation = strpubPathSSIS & "\" & SSIS_Name
        Set pkg = app.LoadPackage(pkgLocation, True, Nothing)

        pkgResults = pkg.Execute()
       
        sMessage = ""
        If pkgResults = DTSER_FAILURE Then
            For Each error In pkg.errors
            sMessage = sMessage & error.SubComponent & " failed:" & _
                        " -Source: " & error.Source & _
                        " -Description " & error.Description & vbNewLine
            Next
        Else
            sMessage = SSIS_Name & " succeeded."
        End If

    Danke nochmal und herzliche Grüße

    Andreas

    Montag, 20. Juni 2011 05:33

Alle Antworten

  • Hallo Andreas Jaendl,

    Schau Dir mal die folgenden Diskussionsfaden an. Vielleicht können sie Dir weiterhelfen.

    VB.NET and DTS package problems

    Migration Of Sql 7.0 Package To Sql 2005

    DTS Package can't be executed from within a VB 6.0 application

    Grüße,

    Robert


    Freitag, 17. Juni 2011 14:25
    Moderator
  • Hallo Robert,

     

    vielen Dank für die Tipps, ich habe die Lösung bereits gefunden. Ich wollte sie auch noch posten, habs allerdings vergessen, darum hole ich das gleich nach:

        Dim sMessage As String
        Dim errors As IDTSErrors100
        Dim error As IDTSError100
        Dim sql As String

        Dim pkgLocation As String
        Dim app As New DTSLib.Application
        Dim pkgResults As DTSExecResult
        Dim pkgcontainer As IDTSContainer100
        Dim pkg As IDTSPackage100
        Dim pkgConnections As IDTSConnections100
        Dim variab As IDTSVariable100
       
        pkgLocation = strpubPathSSIS & "\" & SSIS_Name
        Set pkg = app.LoadPackage(pkgLocation, True, Nothing)

        pkgResults = pkg.Execute()
       
        sMessage = ""
        If pkgResults = DTSER_FAILURE Then
            For Each error In pkg.errors
            sMessage = sMessage & error.SubComponent & " failed:" & _
                        " -Source: " & error.Source & _
                        " -Description " & error.Description & vbNewLine
            Next
        Else
            sMessage = SSIS_Name & " succeeded."
        End If

    Danke nochmal und herzliche Grüße

    Andreas

    Montag, 20. Juni 2011 05:33