Как передать переменные в пакет SSIS из приложения С#
В основном я пытаюсь создать приложение, которое использует SSIS для запуска серии SQL файлов.
Вот мой код:
public JsonResult FireSSIS()
{
string x = string.Empty;
try
{
Application app = new Application();
Package package = null;
package = app.LoadPackage(@"C:\ft\Package.dtsx", null);
Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
if (results == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure)
{
foreach (Microsoft.SqlServer.Dts.Runtime.DtsError local_DtsError in package.Errors)
{
x += string.Concat("Package Execution results: {0}", local_DtsError.Description.ToString());
}
}
}
catch (DtsException ex)
{
// Exception = ex.Message;
}
return Json(x, JsonRequestBehavior.AllowGet);
}
Кто-нибудь знает, как передать переменную самому пакету таким образом?
Ответы
Ответ 1
Попробуйте следующее:
Microsoft.SqlServer.Dts.RunTime.Variables myVars = package.Variables;
myVars["MyVariable1"].Value = "value1";
myVars["MyVariable2"].Value = "value2";
Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute(null, myVars, null, null, null);
Ответ 2
Вам нужно использовать свойство Package.Variables
.
Package package = null;
package = app.LoadPackage(@"C:\ft\Package.dtsx", null);
package.Variables["User::varParam"].Value = "param value";