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

Откуда:
Сообщений: 28
Всем привет!
Есть задача - формировать и отправлять dbf файл на ftp с определенной выборкой. Реализую все в SSIS2008, файлик dbf наполняется и уходит на ftp каждый час. Пустой файл dbf определенной структуры подбрасываю (копирую) из папки, наполняю данными и отправляю. Теперь появилась проблема - допустим данных нет - а файл все равно копируется и отправляется пустой.
Можно как-то прекращать работу пакета если файл пустой?
P.s. Не пинайте, я только начинаю разбираться с SSIS.
22 авг 12, 17:59    [13051164]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
evaluation operation
Guest
добавьте в пакет переменную FileIsEmpty boolean
правая кнопка на констрейнте ("зеленой стрелочке") которая идет к таске отправки файлов -> edit

evaluation operation = expression
expression = !@FileIsEmpty


естественно, переменная FileIsEmpty должна корректно заполнятся до того как выполнение дойдет до этого констрейнта
22 авг 12, 18:17    [13051285]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3041
1. создайте переменную типа INT
2. добавьте компонент ROW COUNT между источником и приемником в DataFlowTask
3. результат компонента пишите в созданную переменную
4. после компонента DataFlowTask перед компонентом FTP Task в workflow (стрелочка) поставьте условие на то, чтобы значение переменной было больше 0

в результате при соблюдения услоовия отправка на фтп будет, при нарушении отправка не состоится
22 авг 12, 18:20    [13051297]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3041
вот нашел статью
22 авг 12, 18:37    [13051392]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5114
ответ на ваш вопрос во многом зависит от того как именно реализовано
new.dba
...файлик dbf наполняется
22 авг 12, 22:55    [13052251]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
new.dba
Member

Откуда:
Сообщений: 28
Дедушка,

наполняется в DataFlowTask
23 авг 12, 09:59    [13053260]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
new.dba
Member

Откуда:
Сообщений: 28
HandKot,

спасибище, буду раскуривать...
23 авг 12, 10:00    [13053262]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
+ HandKot
HandKot, и что прикажете?
Каждый раз подписывать в этом нескончаемом потоке топиков - "Мыши плакали, кололись, но продолжали есть кактус"?
Нет уж, пусть каждый сам выбирает на чём заморачиваться.
Это к этой теме.
23 авг 12, 10:23    [13053358]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5114
new.dba
Дедушка,
наполняется в DataFlowTask
во адский ад... на вопрос "как" давать ответ "где".
23 авг 12, 11:01    [13053658]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
new.dba
Member

Откуда:
Сообщений: 28
Дедушка,

запросом SQL наполняется (OLE DB source = > OLE DB destination)
23 авг 12, 12:44    [13054672]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
new.dba
Member

Откуда:
Сообщений: 28
Может кому-то пригодится.

Сделали так:
Компонент Execute SQL Task в нем проверяем что есть данные для наполнения dbf файла:

declare @s int
set @s=0

if exists (SELECT top 1 *
FROM [xxx].[dbo].[x1]
where flag=0 )

select @s=1

select @s as [RowCountState]

Далее в зеленой стрелочке после [Execute SQL Task] ставим условие @RowCountState==1 то продолжаем выполнение пакета.
Все оказалось просто:)
13 сен 12, 18:39    [13160374]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3041
new.dba
Может кому-то пригодится.

как один из вариантов

со статьей,я понял, Вы так и не разобрались
14 сен 12, 08:44    [13161933]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: Помогите с задачей -- не формировать и не отправлять dbf файл если нет данных.  [new]
new.dba
Member

Откуда:
Сообщений: 28
Дело в том что я копирую пустые dbf из папки Blank. И надо было бы многое изменять - раскуривать как создавать dbf из под dtsx, а не копировать его. Так что задача была решена таким путем.
17 сен 12, 16:32    [13177307]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить