2009-04-16 34 views
0

我想將我的包中的變量傳遞給腳本轉換編輯器。我如何將此添加到我的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 

回答

1

在腳本轉換編輯器的「腳本」頁,最後一節是「自定義屬性」。有兩個屬性:ReadOnlyVariables和ReadWriteVariables。設置那些適合你希望腳本引用的變量的逗號分隔列表。

當您單擊「編輯腳本」按鈕時,您會發現在ComponentWrapper.vb中創建的Variables類現在具有包含變量名稱的屬性。只讀變量將作爲只讀屬性存在; ReadWrite變量將作爲具有getter和setter的屬性存在。

然後,您可以參考它們,例如Variables.TaskID