如何使用EzAPI将OLE DB源SQL命令查询参数映射到变量? 基本上我需要做类似下面的事情。
提前致谢。
答案 0 :(得分: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;
}
答案 1 :(得分: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
。与上述相同。