Передать User :: variable в пользовательскую задачу ssis - PullRequest
1 голос
/ 24 октября 2011

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

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

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

Ответы [ 2 ]

1 голос
/ 24 октября 2011

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

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

1 голос
/ 24 октября 2011

Как только вы определили эту точку, вы передали имя переменной компоненту.Вам нужно будет оценить значение объекта в коллекции 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();
...