Передать User::variable в пользовательскую задачу ssis

#c# #ssis #task

#c# #ssis #задача

Вопрос:

Я разрабатываю пользовательскую задачу SSIS. Он предоставляет несколько свойств, которые должны быть определены пользователем. На данный момент я не реализовал графический интерфейс, поэтому я установил параметры в окне свойств задачи.

Теперь предположим, что у меня есть свойство с именем LastName, и у меня есть переменная SSIS User::LastName. Когда я помещаю User::LastName в свойства, он просто передает строку: «User::LastName» вместо оценки значения строки….

Как я могу заставить его передать значение строки?

Ответ №1:

Поскольку вы определили st этой точки, вы передали имя переменной компоненту. Вам нужно будет оценить значение объекта в коллекции Dts.Variables, приведенной к соответствующему типу.

Я думаю, вы рассматриваете либо наличие двух переменных в вашем компоненте, одну для передачи имени переменной взад и вперед, а другую для хранения фактического значения. Вероятно, вы могли бы создать структуру, которая обрабатывает оба из них, но я готов передать это от руки в ответе 😉

 // Retrieve a single variable. 
// Assumes this.LastNameVariable is a string with value of User::LastName 

IDTSVariables100 variables = null;

VariableDispenser.LockOneForRead(this.LastNameVariable, ref variables);

this.LastName = variables[0].Value.ToString();
variables.Unlock();
 

Комментарии:

1. Приведенное выше относится к 2008R2 Измените IDTSVariables100 на IDTSVariables90 для 2008 и IDTSVariables80 для 2005 (хотя на этом этапе вам также потребуется изменить язык на vb)

Ответ №2:

Я нашел решение.

Определите переменную LastName в пакете, присвоив ей значение, скажем «John». Затем в свойствах пользовательской задачи щелкните Выражения и щелкните […]. Там в разделе property выберите свойство LastName (или любое другое имя, определенное в пользовательских задачах), а затем в разделе experssion нажмите […]. Развернув Переменные, вы получите список всех ваших переменных. Затем вы можете перетащить нужную переменную в поле ввода выражения ниже. Кнопка Оценить выражение позволяет проверить, содержит ли оно требуемое значение. Затем нажмите OK и OK… Затем создание проекта SSIS делает свое дело…

Комментарии:

1. Да, это способ сделать это. (Обратите внимание, что выражения очень мощные, и вы только что поцарапали поверхность того, что вы можете с ними сделать.)