要想在腳本組件中訪問包變量,首先必須設置腳本組件2個屬性的值,如下
ReadOnlyVariables
ReadWriteVariables
這2值指定了哪些變量可以訪問,哪些變量可以改寫(如有多個變量則用逗號分隔),如果你沒有指定上面2個屬性的值,則不能在腳本組件的代碼中訪問包變量
下面我舉一個從文件中加載內容到包變量的一個例子
1、首先我們定義2個變量 FileName 和 FileContents ,并指定其類型為 String
2、拖曳一個腳本組件到控制面板上,并設置 ReadOnlyVariables和ReadWriteVariables 屬性的值分別為 FileName 、FileContents
3、設計腳本組件的代碼,如下
Public Sub Main()
Dim errorInfo As String = ""
Dim Contents As String = ""
Contents = GetFileContents(Dts.Variables("FileName").Value, errorInfo)
If errorInfo.Length > 0 Then
MsgBox(errorInfo, MsgBoxStyle.Critical, "Error")
Dts.TaskResult = Dts.Results.Failure
Else
MsgBox(Contents, MsgBoxStyle.OKOnly, "File contents")
Dts.Variables("FileContents").Value=Contents
Dts.TaskResult = Dts.Results.Success
End If
End Sub
Public Function GetFileContents(ByVal filePath As String, Optional ByVal ErrorInfo As String = "") As String
Dim strContents As String
Dim objReader As StreamReader
Try
objReader = New StreamReader(filePath)
strContents = objReader.ReadToEnd()
objReader.Close()
Return strContents
Catch Ex As Exception
ErrorInfo = Ex.Message
End Try
End Function