Sie können eine Datenflussskriptkomponente verwenden, um einen Datenflussspaltenwert an eine SSIS-Variable zu übertragen. Sie müssen jedoch bestimmte Regeln befolgen, wenn Sie mit der Datenflussskriptkomponente und SSIS-Variablen arbeiten.
SSIS erlaubt es Ihnen nicht, SSIS-Variablen in der Skriptprozedur, die Zeilen verarbeitet, Werte zuzuweisen. Aber es gibt Pre- und Post-Execute-Prozeduren, in denen Sie die Zuweisung vornehmen können.
Fügen Sie in Ihrer Skriptkomponente die SSIS-Variable zur ReadWriteVariables-Eigenschaft hinzu. Bearbeiten Sie das Skript und deklarieren Sie eine Variable in der ScriptMain-Klasse. Verwenden Sie die PreExecute-Prozedur, um die Variable zu initialisieren. Verwenden Sie die ProcessInputRow-Prozedur, um der Skriptvariablen den Spaltenwert input -buffer zuzuweisen. Verwenden Sie außerdem die PostExecute-Aufgabe, um den Wert aus der Skriptvariablen der SSIS-Variablen zuzuweisen.
Hier ist ein Beispiel für eine VB-Skriptkomponente. Es hat eine SSIS-Variable (MyOutVariable), die die Ausgabe der Skriptvariablen (MyVar) erhält. Die MyVar-Variable erhält ihren Wert aus der MyNumber-Spalte im Datenfluss.
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