引用变量

时间:2013-12-13 18:02:23

标签: ssis foreach-loop-container

我正在制作SSIS 2012套餐。在foreachfile循环中,有一个变量“User :: Filename”,这个构造的一个相当标准的变量。在循环内部的后续步骤中,我将文件移动到归档目录。然后,我想重命名它。我将“Destination”属性映射到新名称,其格式为“”+“YYYYMMDDHHMMSS”+ @ [User :: Filename]。

当我在设计时点击“评估表达式”时,除了文件名为空之外,它当然有效,所以不显示。 我还将“延迟验证”设置为true。

当我运行包时,它会失败,因为它找不到源文件或目标文件(Source设置方式相同... + @ [User :: Filename]。)在错误消息中,它显示我在设计时点击“评估表达式”后得到的字符串完全相同。

为什么不显示文件名?

1 个答案:

答案 0 :(得分:0)

使用此代码将脚本任务放入循环容器中。

public void Main()
{
        bool success = false;
        string fName = Dts.Variables["User::Filename"].Value.ToString();
        Dts.Events.FireInformation(1, "File Loop", fName, "", 0, ref success);

        Dts.TaskResult = (int)ScriptResults.Success;
}

然后在输出窗口中查看打印的列表。