0

我的数据库表中有一些路径,如下所示:

ID          PATHXML              PATHPICT               PATHSONG
1         D:\XML\Here        D:\Picture\Image      D:\Blur\Song2
2         D:\XML\File        D:\Picture\X-Files    D:\IRONMAIDEN\Fearofthedark

我想打开登录 SSIS 并将此日志结果保存到 PathSong 例如。D:\Blur\Song2\eventlog.log

我创建了一个变量来获取这条路径。但是当我使用这个变量创建一个表达式时,它不起作用。那么我能做些什么来解决这个问题呢?

4

1 回答 1

1

访问(数据流任务的)脚本组件中的包变量与访问脚本任务中的包变量不同。对于脚本组件,您首先需要打开脚本转换编辑器(右键单击组件并选择“编辑...”)。在“脚本”选项卡的“自定义属性”部分中,您可以输入(或选择)要在只读或读写基础上提供给脚本的属性:在此处输入图像描述

然后,在脚本本身中,变量将作为变量对象的强类型属性提供:

// Modify as necessary
public override void PreExecute()
{
    base.PreExecute();
    string thePath = Variables.FilePath;
    // Do something ...
}

public override void PostExecute()
{
    base.PostExecute();
    string theNewValue = "";
    // Do something to figure out the new value...
    Variables.FilePath = theNewValue;
}

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    string thePath = Variables.FilePath;
    // Do whatever needs doing here ...
}

一个重要的警告:如果您需要写入包变量,您只能在PostExecute()方法中执行此操作。

关于代码片段:

IDTSVariables100 varCollection = null;
this.VariableDispenser.LockForRead("User::FilePath");
string XlsFile;

XlsFile = varCollection["User::FilePath"].Value.ToString();

varCollection 被初始化为 null 并且永远不会设置为有效值。因此,任何取消引用它的尝试都会失败。

于 2013-03-15T12:47:35.867 回答