Du kan använda en Data Flow Script-komponent för att överföra ett dataflödeskolumnvärde till en SSIS-variabel. Du måste dock följa vissa regler när du arbetar med Data Flow Script-komponenten och SSIS-variabler.
SSIS tillåter inte att du tilldelar värden till SSIS-variabler i skriptproceduren som bearbetar rader. Men det finns procedurer före och efter utförande där du kan hantera uppdraget.
I din Script-komponent lägger du till SSIS-variabeln i egenskapen ReadWriteVariables. Redigera skriptet och deklarera en variabel i ScriptMain-klassen. Använd PreExecute-proceduren för att initiera variabeln. Använd ProcessInputRow-proceduren för att tilldela kolumnvärdet för input -buffer till skriptvariabeln. Och använd PostExecute-uppgiften för att tilldela värdet från skriptvariabeln till SSIS-variabeln.
Här är ett exempel på VB-skriptkomponent. Den har en SSIS-variabel (MyOutVariable) som får utdata från skriptvariabeln (MyVar). MyVar-variabeln får sitt värde från kolumnen MyNumber i dataflödet.
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