Кажется очень неэффективным , чтобы открыть / закрыть соединение для каждого оператора вставки.
Стандартный подход выглядит примерно так:
- Открыть соединение.
- Начать транзакцию, если поддерживается.(Это часто очень важно для баз данных с транзакциями.)
- Вставка. Повторите этот шаг при необходимости.
- Подтвердите транзакцию, если поддерживается.
- Закройте соединение.
Обновление: Следующее не относится к MS Access.Access не поддерживает вставку нескольких строк из литерала .Он поддерживает только вставку нескольких строк из существующего источника данных.(Хотя здесь может работать «workabout» . В любом случае, наиболее важным является ограничение количества транзакций.)
Еще одна вещь, которую можно сделать, этосоздайте команду single insert, которая добавляет несколько записей одновременно.Это можно сделать с помощью нескольких операторов или вставки из нескольких записей (если поддерживается).Это может быть или не быть значительно быстрее, чем просто выше (зависит от других факторов, таких как задержка сети и ядро базы данных) и, вероятно, потребуется адаптировать, чтобы соответствовать ограничениям базы данных (например, может быть тольковыполнимо для нескольких сотен записей одновременно).Это должно только после правильного использования соединения / транзакции, как описано выше.
Я не удивлюсь, если мы уже сделали библиотеки / модули "массовой вставки", плавающие вокруг ..и я не использую MS Access, поэтому я могу только надеяться, что приведенные выше предложения были полезны: -)
Удачное кодирование.