Bạn có thể sử dụng thành phần Tập lệnh luồng dữ liệu để chuyển giá trị cột luồng dữ liệu sang biến SSIS. Tuy nhiên, bạn phải tuân theo các quy tắc nhất định khi làm việc với thành phần Tập lệnh luồng dữ liệu và các biến SSIS.
SSIS không cho phép bạn gán giá trị cho các biến SSIS trong quy trình tập lệnh xử lý các hàng. Nhưng có những thủ tục trước và sau khi thực hiện mà bạn có thể xử lý việc chuyển nhượng.
Trong thành phần Tập lệnh của bạn, hãy thêm biến SSIS vào thuộc tính ReadWriteVariables. Chỉnh sửa tập lệnh và khai báo một biến trong lớp ScriptMain. Sử dụng thủ tục PreExecute để khởi tạo biến. Sử dụng thủ tục ProcessInputRow để gán giá trị cột bộ đệm đầu vào cho biến tập lệnh. Và, sử dụng tác vụ PostExecute để gán giá trị từ biến tập lệnh cho biến SSIS.
Đây là một thành phần tập lệnh VB mẫu. Nó có một biến SSIS (MyOutVariable) sẽ lấy đầu ra của biến tập lệnh (MyVar). Biến MyVar nhận giá trị từ cột MyNumber trong luồng dữ liệu.
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