Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
В MS SQL Server 2000 в ДТС через скрипты менял имена файлов назначения, sql запросы и тд..
Как можно изменить те или иные параметры тасков пакета из script task в MS sql 2005 ? Напрмер, есть Ole DB Source, как вообще к нему обратиться ? (Искал долго, без результатов)
20 авг 09, 19:27    [7563922]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
Ну, если дело не относится к DataFlowTask, то просто открываете ScriptTask, в ReadWriteVariables записываете вашу переменную MyVariable, а потом в самом скрипте что-то типа
Dts.Variables("MyVariable").Value = и тут значение... чуть сложнее в DataFlowTask, но тоже выполнимо... почитайте здесь http://msdn.microsoft.com/en-us/library/ms135941.aspx
21 авг 09, 09:11    [7564756]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Не переменные, а свойства элементов пакета... К ним нужно обратиться. Потому что именется длинный запрос для sql execution task, 9000 символов. Он должен меняться в зависимости от необходимого периода, ну соответсвенно такой запрос ни в переменну. ни через выражения не запихнёшь ...
24 авг 09, 08:21    [7571360]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
jetzack
Не переменные, а свойства элементов пакета... К ним нужно обратиться. Потому что именется длинный запрос для sql execution task, 9000 символов. Он должен меняться в зависимости от необходимого периода, ну соответсвенно такой запрос ни в переменну. ни через выражения не запихнёшь ...
А почему его не запихать в хранимую процедуру с параметром/и?
24 авг 09, 08:24    [7571367]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Это конечно решение, но хочется не добавлять еще одну процедуру.
24 авг 09, 10:10    [7571646]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
Glory
Member

Откуда:
Сообщений: 104760
jetzack
Потому что именется длинный запрос для sql execution task, 9000 символов. Он должен меняться в зависимости от необходимого периода, ну соответсвенно такой запрос ни в переменну. ни через выражения не запихнёшь ...

Вот так вот меняется весь текст запроса длиной в 9000 символов ?
24 авг 09, 10:11    [7571650]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А разве ограничение строковой переменной в SSIS пакете менее 9000 символов?
24 авг 09, 10:12    [7571654]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Нет меняется - дата.... всего навсего.
24 авг 09, 11:51    [7572170]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
Glory
Member

Откуда:
Сообщений: 104760
jetzack
Нет меняется - дата.... всего навсего.

Т.е. какой-то параметер в WHERE ?
24 авг 09, 11:53    [7572183]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
да - во вложенном запросе
24 авг 09, 12:02    [7572253]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Declare @d1 datetime
set @d1 = convert(datetime,?)
......
select ........
- почему такое не проходит?) решило бы пробелму полностью
25 авг 09, 12:10    [7576490]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
Glory
Member

Откуда:
Сообщений: 104760
jetzack
Declare @d1 datetime
set @d1 = convert(datetime,?)
......
select ........
- почему такое не проходит?) решило бы пробелму полностью

Потому что это не параметризированный запрос
Параметризированный запрос выглядит так
SELECT ... FROM mytable WHERE mytable.f1 = ?
25 авг 09, 12:14    [7576516]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Glory
jetzack
Declare @d1 datetime
set @d1 = convert(datetime,?)
......
select ........
- почему такое не проходит?) решило бы пробелму полностью

Потому что это не параметризированный запрос
Параметризированный запрос выглядит так
SELECT ... FROM mytable WHERE mytable.f1 = ?
+ передавайте дату в виде строки - https://www.sql.ru/faq/faq_topic.aspx?fid=109
25 авг 09, 12:16    [7576531]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
=( а что делать то? хранимая процедура не катит все же..
25 авг 09, 12:34    [7576625]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
Glory
Member

Откуда:
Сообщений: 104760
jetzack
=( а что делать то? хранимая процедура не катит все же..

Вы сами определитесь. Декларируете, что у вас запрос, а на самом деле скрипт
25 авг 09, 12:39    [7576660]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Ну да, тут вы правы, только от этого не легче.
25 авг 09, 12:40    [7576662]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
Glory
Member

Откуда:
Сообщений: 104760
jetzack
Ну да, тут вы правы, только от этого не легче.

Легче было бы, если бы вы с самого начала называли вещи своими именами.
25 авг 09, 12:41    [7576672]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Хорошо, учту. Но, есть ли выход? Можно ли это чудо загнать в переменную через скрипт таск?
25 авг 09, 12:45    [7576695]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
jetzack
а что делать то?
Для начала более полно описать условия задачи, примененные вами способы её решения и желательно с кодом скриптов и т.п.
25 авг 09, 12:46    [7576702]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
ElenaG
Member

Откуда: Москва
Сообщений: 3388
Я так поняла, что нужно поменять запрос в Data Flow Task.
Берете в Data Flow Component выбираете SqlCommand from Variable
В этой переменной пишите все что угодно, лишь бы колонки те же были.
Перед выполнением Data Flow Task, ставите Script Task.
В нем в ReadWriteVariables указываете эту переменную.
А потом в скрипте ее переопределяете.
Пример:
For Each Var In Dts.Variables
    Select Case Var.Name
                Case "QueryTI"
                    Var.Value = " select * from Info_TI  with (nolock) where TI_ID in " & _
"(SELECT * FROM dbo.sf_Info_GetTI_IDListNeededForMES(" + MES.ToString() + "))"
    End Select
Next
25 авг 09, 17:40    [7578824]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
=) Я так пытался сделать.. остановило то, что этот скрпит в 9000 символов примерно, чуть больше, по строчно в кавычкы заключать это сложновато. Хм, конечно с sql server я недавно работаю, а visul basic я знаю еще хуже - вопрос - можно ли загнать этот кусок текста в переменную без рабиения на строки, имею в виду tatata = " select .... from ..." +"where ...." - можно проще ?
25 авг 09, 21:49    [7579512]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
jetzack
Я так пытался сделать.. остановило то, что этот скрпит в 9000 символов примерно, чуть больше, по строчно в кавычкы заключать это сложновато.
Ещё раз...
Вы уже попробовали?
Причем здесь 9000 символов???
Если мне не изменяет склероз, размер переменной строкового типа дотнета аккурат 2 гигабайта!!!
Ваши 9000 символов укладываются всего в 18 тысяч байт!
26 авг 09, 06:28    [7580023]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Ошибка: The variable Пользователь::Sqlcmd contains a string that exceeds the maximum allowed length of 4000 characters.
Ошибка: Reading the variable "Пользователь::Sqlcmd" failed with error code 0xC0047100.
Ошибка: The expression "@[Пользователь::Sqlcmd]" on property "SqlStatementSource" cannot be evaluated. Modify the expression to be valid.

Раз ограничение аж в в 2 гига, то в связи с чем эти ошибки?
26 авг 09, 11:30    [7580901]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Как видите я пытаюсь в sql exection task через выражение назначить sqlstatementsource
26 авг 09, 11:32    [7580913]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - изменение параметров тасков в пакете из script task  [new]
jetzack
Member

Откуда:
Сообщений: 18
Так!
Всем спасбио, разобрался!
26 авг 09, 11:34    [7580926]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить