sql >> Base de Datos >  >> Database Tools >> SSMS

Conjunto de resultados del conjunto SSIS del flujo de datos a la variable

Puede usar un componente de secuencia de comandos de flujo de datos para transferir un valor de columna de flujo de datos a una variable de SSIS. Sin embargo, debe seguir ciertas reglas al trabajar con el componente Script de flujo de datos y las variables SSIS.

SSIS no le permite asignar valores a las variables de SSIS en el procedimiento de secuencia de comandos que procesa las filas. Pero existen procedimientos previos y posteriores a la ejecución en los que puede manejar la asignación.

En su componente Script, agregue la variable SSIS a la propiedad ReadWriteVariables. Edite el script y declare una variable en la clase ScriptMain. Utilice el procedimiento PreExecute para inicializar la variable. Utilice el procedimiento ProcessInputRow para asignar el valor de la columna del búfer de entrada a la variable de script. Y use la tarea PostExecute para asignar el valor de la variable de secuencia de comandos a la variable SSIS.

Aquí hay un componente de secuencia de comandos VB de ejemplo. Tiene una variable SSIS (MyOutVariable) que obtendrá la salida de la variable de script (MyVar). La variable MyVar obtiene su valor de la columna MyNumber en el flujo de datos.

Public Class ScriptMain
    Inherits UserComponent

    Dim MyVar As Integer

    Public Overrides Sub PreExecute()
        MyBase.PreExecute()

        'initialize variable local to data flow
        MyVar = 0

    End Sub

    Public Overrides Sub PostExecute()
        MyBase.PostExecute()

        ' output variable value to SSIS variable
        Me.Variables.MyOutVariable = MyVar

    End Sub

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

        ' logic to get value
        MyVar = Row.MyNumber

    End Sub
End Class