如何使用 EzAPI 将 OLE DB 源 SQL 命令查询参数与变量映射?基本上我需要做类似下面的事情。
提前致谢。
以下是我必须为 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;
}
我接受了 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
。和上面一样。