Как я могу выполнить SqlBulkCopy (эквивалент) с помощью соединения ODBC в C#?

Я работаю над проектом, в котором мне нужно извлечь данные из таблицы базы данных MSSQL, а затем вставить данные в таблицу той же структуры на AS400.

SqlBulkCopy был бы идеальным кандидатом для этой операции, но он терпит неудачу (по понятным причинам), поскольку AS400 использует соединение ODBC.

Любая помощь или предложения по этому поводу будут очень признательны!

Спасибо


person Matt    schedule 06.10.2009    source источник
comment
Насколько велик набор данных, с которыми вы работаете?   -  person Raj More    schedule 06.10.2009
comment
какие методы доступны для импорта в AS400?   -  person Raj More    schedule 06.10.2009


Ответы (1)


Если это одноразовая задача, я бы, вероятно, просто извлек данные из MSSQL в файл CSV. Затем поместите CSV-файл в папку IFS на AS/400 и используйте CPYFRMIMPF. Возможно, вам придется играть в игры с форматом даты, чтобы он соответствовал форматам AS/400. Вы можете указать форматы даты и времени и разделители в команде CPYFRMIMPF.

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

person Tracy Probst    schedule 06.10.2009
comment
Спасибо за это, к сожалению, это ежедневное обновление - в конце концов я просто создал таблицу данных для каждой таблицы в базе данных, затем прошелся по строкам, создав запрос на вставку в пакетах по 50, а затем запустил его в AS / 400 для сделать вставку. Не совсем так, как я имел в виду, но это работает, и объединение в группы по 50 останавливает слишком сильное замедление Movex и не оставляет слишком много открытых соединений! - person Matt; 11.11.2009