2010-06-18 2 views
0

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

E.g. У меня есть строка со строковым значением 99-02-2010, которую я пытаюсь добавить в качестве CDate в такую ​​дату:

Row.ChangeDate = CDate (rowValues.GetValue (0) .ToString()) '= > выдает исключение

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

С уважением

ответ

0

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

Немного странно складывать все столбцы вручную. Но, наконец, он работает так, как должен. Легко, если вы знаете, как это сделать. Thx для вашего ввода.

[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

1

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

+0

Это не представляется возможным. Мне пришлось использовать это [1] обходное решение для обработки моих данных CSV. Проблема здесь в том, что созданный вывод должен быть синхронизирован с SynchronousInputId ввода. Но мой ввод имеет только одну строку, как вы можете видеть в сообщении в блоге. Из-за этого я не могу привязать данные к вновь созданному выводу, потому что я не могу сопоставить какие-либо поля. [1] http://agilebi.com/cs/blogs/jwelch/archive/2007/05/08/handling-flat-files-with-varying-numbers-of-columns.aspx – pantarhei

Смежные вопросы