Использование SSIS для отправки результатов запроса по электронной почте - PullRequest
0 голосов
/ 05 марта 2020

У меня есть задача отправить результат запроса по электронной почте, используя SSIS 2017. Я ссылался на предыдущие сообщения, связанные с этим, но я не могу получить требуемый ответ. Вот что я сделал до сих пор: 1. Создайте управляющую задачу sql с моим запросом и набором результатов, которая ссылается на переменную типа объекта 2. Создайте контейнер foreach 3. Поместите задачу скрипта в foreach l oop (i Я думаю, что моя проблема связана с этой задачей) и поместил переменную как переменную только для чтения. 4. Отправить задачу электронной почты с bodytext в качестве переменной

Мой набор результатов - это всего один столбец из таблицы.

Я ссылался на этот URL: Как отправить записи из таблицы в теле сообщения электронной почты с использованием пакета служб SSIS?

и, пожалуйста, найдите прикрепленный код задачи скрипта.

Будет было бы здорово, если бы вы, ребята, могли бы помочь мне

/*Microsoft SQL Server Integration Services Script Task
   Write scripts using Microsoft Visual C# 2008.
   The ScriptMain is the entry point class of the script.
*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;

namespace ST_8015f41e93944f0e944089c73b520312
{
    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    {

        #region VSTA generated code
        enum ScriptResults
        {
            Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
            Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
        };
        #endregion

        public void Main()
        {
            Variables varCollection = null;
            string header = string.Empty;
            string message = string.Empty;

            Dts.VariableDispenser.LockForWrite("User::EmailMessage");
            Dts.VariableDispenser.LockForWrite("User::Result");
            Dts.VariableDispenser.GetVariables(ref varCollection);

            //Set the header message for the query result
            if (varCollection["User::EmailMessage"].Value == string.Empty)
            {
                header = "Execute SQL task output sent using Send Email Task in SSIS:\n\n";
                header += string.Format("{0}\n", "Result");
                //varCollection["User::EmailMessage"].Value = header;
            }
            //Format the query result with tab delimiters
            message = string.Format("{0}",
                                        varCollection["User::Result"].Value);

            varCollection["User::EmailMessage"].Value = varCollection["User::EmailMessage"].Value + message;

            Dts.TaskResult = (int)ScriptResults.Success;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...