【问题标题】:How to Pass Variables into Script Transformation Editor?如何将变量传递到脚本转换编辑器?
【发布时间】:2009-04-16 00:35:26
【问题描述】:

我想将变量从我的包传递到脚本转换编辑器。如何将其添加到下面的 Row.Reference1 中?

这是我使用的脚本:

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

Public Class ScriptMain
    Inherits UserComponent

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

        Row.Column1 = Tokenise(Row.Column0, "|", 1)
        Row.Column2 = Tokenise(Row.Column0, "|", 2)
        Row.Column3 = Tokenise(Row.Column0, "|", 3)
        Row.Column4 = Tokenise(Row.Column0, "|", 4)
        Row.Column5 = Tokenise(Row.Column0, "|", 5)
        Row.Column6 = Tokenise(Row.Column0, "|", 6)
        Row.Column7 = Tokenise(Row.Column0, "|", 7)
        Row.Column8 = Tokenise(Row.Column0, "|", 8)
        Row.Column9 = Tokenise(Row.Column0, "|", 9)
        Row.Column10 = Tokenise(Row.Column0, "|", 10)
        Row.Column11 = Tokenise(Row.Column0, "|", 11)
        Row.Column12 = Tokenise(Row.Column0, "|", 12)
        Row.Column13 = Tokenise(Row.Column0, "|", 13)
        Row.Column14 = Tokenise(Row.Column0, "|", 14)
        Row.Column15 = Tokenise(Row.Column0, "|", 15)
        Row.Column16 = Tokenise(Row.Column0, "|", 16)
        'Row.Reference1 = ???

    End Sub

Private Function Tokenise(ByVal input As String, ByVal delimiter As String, ByVal token As Integer) As String

        Dim tokenArray As String()
        tokenArray = input.Split(delimiter.ToCharArray) 'Split the string by the delimiter
        If tokenArray.Length < token Then 'Protect against a request for a token that doesn't exist
            Return ""
        Else
            Return tokenArray(token - 1)
        End If
    End Function
End Class

【问题讨论】:

    标签: sql-server-2005 ssis


    【解决方案1】:

    在脚本转换编辑器的“脚本”页面上,最后一个部分是“自定义属性”。有两个属性:ReadOnlyVariables 和 ReadWriteVariables。将适合的变量设置为您希望脚本引用的以逗号分隔的变量列表。

    当您单击“编辑脚本”按钮时,您会发现在 ComponentWrapper.vb 中创建的变量类现在具有带有变量名称的属性。只读变量将作为只读属性存在; ReadWrite 变量将作为具有 getter 和 setter 的属性存在。

    然后您将它们引用为例如Variables.TaskID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2016-07-24
      • 1970-01-01
      相关资源
      最近更新 更多