0

如何使用 EzAPI 将 OLE DB 源 SQL 命令查询参数与变量映射?基本上我需要做类似下面的事情。

在此处输入图像描述

提前致谢。

4

2 回答 2

1

以下是我必须为 SSIS 2012 执行的操作。我必须找到相关变量的 GUID 并以这种方式设置。

EzOleDbSource source = new EzOleDbSource(this);
source.Connection = sourceconnection;
source.SqlCommand = sourcecomannd;
source.AccessMode = AccessMode.AM_SQLCOMMAND;
source.SetComponentProperty("ParameterMapping", "\"Parameter0:Input\",{C2BCD5B0-1FDB-4A74-8418-EEF9C1D19AC3};");

要获取 GUID,您可以查询 EZPackage 对象中的变量。

Application a = new Application();
var package = a.LoadPackage(packagelocation, null);
var ezpackage = new EzPackage(package);
var firstOrDefault = ezpackage.Variables.OfType<Microsoft.SqlServer.Dts.Runtime.Variable>()
    .AsQueryable()
    .FirstOrDefault(x => x.Name.Equals("MyParameter"));
if (firstOrDefault != null)
{
    var guid =
        firstOrDefault.ID;
}
于 2014-03-28T20:13:35.820 回答
0

我接受了 Geek 的回答,因为它是我问题的真正答案。但我发现我们可以直接在查询中使用变量,而不是将变量映射到参数。例如:exec your_sp_name "@[User::your_variable_name]"

更新:上述方法不起作用。

使用接受的答案方法。为了获取变量的 GUID,我使用了以下方法。

string guid = string.Empty;

foreach (var x in this.Variables)
{
    if (x.Name == "cdc_capture_log_id")
    {
        guid = x.ID;
    }
}

哪里this = EzPackage。和上面一样。

于 2014-04-01T04:42:27.610 回答