asp.net-mvc - 从 MVC Web api 调用 SSIS 包并在包完成时返回成功
问题描述
我正在调用部署在 SSISDB 上的 SSIS 包。我使用下面的代码来调用一个包:
SqlCommand cmdCreateExecution = new SqlCommand("[SSISDB].[catalog].[create_execution]", cnn,transaction);
SqlCommand cmdSetParams = new SqlCommand("[SSISDB].[catalog].[set_execution_parameter_value]", cnn,transaction);
SqlCommand cmdSetParams1 = new SqlCommand("[SSISDB].[catalog].[set_execution_parameter_value]", cnn,transaction); SqlCommand cmdStartExecution = new SqlCommand("[SSISDB].[catalog].[start_execution]", cnn, transaction);
cmdCreateExecution.CommandType = CommandType.StoredProcedure;
cmdSetParams.CommandType = CommandType.StoredProcedure;
cmdSetParams1.CommandType = CommandType.StoredProcedure;
cmdStartExecution.CommandType = CommandType.StoredProcedure;
cmdCreateExecution.Parameters.Add("@folder_name", SqlDbType.NVarChar).Value = "Folder_Name";
cmdCreateExecution.Parameters.Add("@project_name", SqlDbType.NVarChar).Value = "Project_Name";
cmdCreateExecution.Parameters.Add("@package_name", SqlDbType.NVarChar).Value = "Package.dtsx";
cmdCreateExecution.Parameters.Add("@reference_id", SqlDbType.BigInt).Value = null;
cmdCreateExecution.Parameters.Add("@execution_id", SqlDbType.BigInt);
cmdCreateExecution.Parameters["@execution_id"].Direction = ParameterDirection.Output;
cmdCreateExecution.ExecuteNonQuery();
execution_id = (long)cmdCreateExecution.Parameters["@execution_id"].Value;
cmdSetParams.Parameters.Add("@execution_id", SqlDbType.BigInt).Value = execution_id;
cmdSetParams.Parameters.Add("@object_type", SqlDbType.SmallInt).Value = 30;
cmdSetParams.Parameters.Add("@parameter_name", SqlDbType.VarChar).Value = "paramCompany";
cmdSetParams.Parameters.Add("@parameter_value", SqlDbType.Variant).Value = Company;
cmdSetParams.ExecuteNonQuery();
cmdSetParams1.Parameters.Add("@execution_id", SqlDbType.BigInt).Value = execution_id;
cmdSetParams1.Parameters.Add("@object_type", SqlDbType.SmallInt).Value = 30;
cmdSetParams1.Parameters.Add("@parameter_name", SqlDbType.VarChar).Value = "paramClientNumber";
cmdSetParams1.Parameters.Add("@parameter_value", SqlDbType.Variant).Value = ClientNumber;
cmdSetParams1.ExecuteNonQuery();
cmdStartExecution.Parameters.Add("@execution_id", SqlDbType.BigInt).Value = execution_id;
cmdStartExecution.ExecuteNonQuery();
此代码有效并成功运行 SSIS 包。包完成执行时,有什么方法可以从 web api 向调用客户端返回成功消息。
解决方案
推荐阅读
- javascript - 当标题中包含“&”时,电子邮件标题无法正确显示,如何在 JavaScript 中修复?
- excel - VBA:比较两个范围的更快方法?
- javascript - 如何使用 Cocoon 以嵌套形式定位单个新输入项
- python - 我如何循环几何序列。我需要在 1、2、4、8、16 上循环一些函数
- ajax - CakePHP 3:与“onclick 确认”相关的 ajax 请求中的“中断”
- java - 并行布尔值和字符串
- python - 如何在 nifi executescript 处理器中获取测试文件以输出流流文件
- google-bigquery - 如何订购格式化(MMM yyyy)日期?
- neo4j - ModuleNotFoundError:没有名为“py2neo”的模块
- html - Rmarkdown:我们可以将两个单元格与 kableExtra 合并吗?