2013-12-13 25 views
0

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

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

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

为什么不显示文件名?

+0

你知道变量在失败点的内容吗? – Metaphor

+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; 
} 

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