2

我的 SSIS 包中有一个 foreach 循环容器,它迭代大约 30 个 .mdb (Access 2000) 文件。

这些文件可能非常大(最大 1GB),所以我想要某种“视觉反馈”来显示当前正在迭代的文件,无论是作为文件名还是作为“当前在 y 个文件中的 x 个”。

有没有办法在包的执行过程中动态显示这个?也许动态更新一个盒子的名字?

我正在使用 SQL Server/Visual Studio 2005

提前致谢。

4

1 回答 1

3

foreach在循环的开头放置一个脚本任务, select Visual Basic,选择要监视的变量为 ReadOnlyVariables,然后Public Sub Main()用此代码替换默认值(编辑:还包括Enum ScriptResults每个请求的代码):

Enum ScriptResults
    Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
    Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum

Public Sub Main()
    Dim msg As String = ""
    For Each Variable As Microsoft.SqlServer.Dts.Runtime.Variable In Dts.Variables
        msg = msg & "--" & Variable.Name & "|| " & Variable.Value.ToString() & "||"
    Next

    Dts.Events.FireInformation(-1, "", msg, String.Empty, -1, False)
    Dts.TaskResult = ScriptResults.Success
End Sub

然后,进度选项卡将在每次迭代开始时记录变量。

于 2013-09-10T14:19:47.243 回答