Прервать обработку строки в методе ProcessInputRow? - PullRequest
0 голосов
/ 18 июня 2010

Можно ли прервать обработку строки в методе ProcessInputRow?Я делаю некоторые проверки данных с входящими данными CSV в этой функции.Я устанавливаю значения строк в подпрограмме.Если возникает ошибка, я перехватываю ее в ProcessInputRow и начинаю записывать данные в промежуточную таблицу для последующего утверждения.Все работает отлично.Проблема в том, что строка с неверными данными все еще записана в целевой таблице.

Например, у меня есть строка со строковым значением 99-02-2010, которую я пытаюсь добавить как CDate в столбец даты, подобный этому:

Row.ChangeDate = CDate (rowValues.GetValue (0) .ToString ()) '=> генерирует исключение

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

С уважением

Ответы [ 2 ]

1 голос
/ 18 июня 2010

Создайте новый вывод в вашей задаче сценария и направьте неверные строки на вывод ошибок (с добавлением соответствующего столбца / описания сообщения об ошибке). Затем направьте их к любой другой таблице, которую вы хотите использовать.

0 голосов
/ 21 июня 2010

Наконец-то это удалось.Теперь это комбинация [1] и [2].Мне пришлось добавить строки вывода вручную в мой недавно созданный вывод.Затем я смог отобразить таблицу для недопустимых строк.Теперь у меня есть выход для действительных и один для недействительных строк.Я присваиваю значения данных строки в сценарии и направляю их на соответствующий вывод.

Немного странно создавать все столбцы вручную.Но наконец-то все работает как надо.Легко, если ты умеешь.Спасибо за ваш вклад.

[1] http://agilebi.com/cs/blogs/jwelch/archive/2007/05/08/handling-flat-files-with-varying-numbers-of-columns.aspx

[2] http://consultingblogs.emc.com/jamiethomson/archive/2005/09/05/SSIS-Nugget_3A00_-Multiple-outputs-from-a-synchronous-script-transform.aspx

...