Как решить «Ошибка выполнения во время выполнения» была вызвана целью вызова «Я пропустил файл DLL? - PullRequest
3 голосов
/ 07 марта 2019

Я провожу некоторое тестирование, которое выводит полный набор результатов в задачу скрипта (окно сообщения дисплея) из Execute SQL Task с использованием Foreach loop Container.но работает в DTS Script task: ошибка во время выполнения.

Окно сообщения об ошибке

Error Message Box

Я пропалкакой-то DLL-файл?

Скрипт

Script

Поток управления

Control FLow

1 Ответ

0 голосов
/ 09 марта 2019

Сообщение об ошибке

исключение было выдано целью вызова

Общее сообщение об ошибке, которое отображается, когда код сценария вызывает исключение. Чтобы прочитать основное сообщение об ошибке, вы можете добавить в код предложение try catch и использовать метод Dts.FireError(), чтобы вызвать реальное исключение.

public void Main()
{
    try{

        string strMessage = Dts.Variables["User::FinalTieOut"].Value.ToString();
        Messagebox.Show(strMessage);
        Dts.TaskResult = (int)ScriptResult.Success;

    }catch(Exception ex){

        Dts.FireError(0,"An error occured", ex.Message,String.Empty, 0);
        Dts.TaskResult = (int)ScriptResult.Failure;

    }


}

Имена переменных

На основе Использование переменных в задаче сценария - официальная документация :

Вы добавляете существующие переменные в списки ReadOnlyVariables и ReadWriteVariables в редакторе задач «Сценарий», чтобы сделать их доступными для пользовательского сценария. Имейте в виду, что имена переменных чувствительны к регистру . Внутри скрипта вы получаете доступ к переменным обоих типов через свойство Variables объекта Dts. Используйте свойство Value для чтения и записи в отдельные переменные. Задача «Сценарий» прозрачно управляет блокировкой, когда сценарий считывает и изменяет значения переменных.

Просто измените USER::FinalTieOut на User::FinalTieOut, и это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...