SSIS脚本任务将DateTime存储在变量

时间:2016-05-19 11:50:08

标签: c# ssis script-task

我不确定为什么会发生这种情况,但我的脚本任务并未将DateTime-Value存储在变量中。 这是我(直到现在)非常基本的代码:

[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
    public void Main()
    {
        DateTime creationTime;
        DateTime modifiedTime;
        DateTime oldCreationDate = (DateTime)Dts.Variables["User::OldFileDate"].Value;
        DateTime oldModifiedTime = (DateTime)Dts.Variables["User::OldModifiedDate"].Value;

        Dts.Variables["User::OldFileDate"].Value = DateTime.Now;

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

    enum ScriptResults
    {
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    };
}

尚未完成,但我想检查变量是否存储。我使用调试器检查了变量,在运行时期间进行了变量更改,但是如果我在执行后查看变量,它仍然是相同的值。 我还检查了属性,ReadOnlyFalse,变量也会添加到包中。Variables variable declaration in ssis关于我做错的任何想法?

1 个答案:

答案 0 :(得分:1)

在断点处停止后,在监视窗口中查看运行时值的变量。调试期间不会更新变量窗口。

编辑:根据您的评论忽略上述内容。 您可以随时在包中保存变量,包括结尾。我建议您使用执行SQL任务:

Insert Into ImportedFiles (FileName, Imported) Values (?, getdate())

根据您对问题的评论,您需要确定该文件是否先前已导入。你可以这样做:

Select 1 From ImportedFiles Where FileName = ?

然后根据该查询,您可以设置逻辑以导入文件或跳过它。