Опция "
Используя SQL запросы" формирует SQL-запрос к БД. Для этой опции появился параметр "Записей в одном блоке" для получения/сохранения данных порциями.
ПримерЕсли таблица состоит из 550 записей, а размер блока - 100 записей, то в итоге таблица будет разбита на 6 блоков. Пять из них будут содержать по 100 записей, а последний - 50 записей. Для каждого блока создается собственный SQL запрос, который выполняется отдельной транзакцией.
Запись порциями повышает надежность сохранения данных и позволяет сохранять большие таблицы.
Опция "
Используя "Bulk" объекты" позволяет сохранять таблицу целиком, используя SQL-инструкцию Bulk Insert, обеспечивая высокую скорость записи в БД.
Свойство для таймаута (T) выполнения операции ограничивает время ожидания выполнения операции (в секундах).
Если операция не будет реализована в указанный период, будет выдана ошибка.
Ограничения для опцииОперация Bulk требует точного соответствия типов данных в таблице DataTable и целевой таблице в базе данных.
Структура таблицы с данными не подлежит изменению, поэтому важно следить за типами колонок входной DataTable до её заполнения.
Также ограничением является ограниченный список провайдеров, поддерживающих Bulk Insert:
- для MS SQL Server – System.Data.SQLClient,
- для Oracle - Oracle.ManagedDataAccess.Client.
В случае SQLConnection и провайдера
System.Data.SQLClient допустимо использовать и другие СУБД (например, MySQL).