Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > оптимизация добавления записей в таблицу бд


Автор: NieL 8.7.2011, 12:09
задача такая, написать api для взаимодействия с бд приложения из 1C. проблема только с функцией добавления - пользователь пробегает по справочнику товаров в 1С и через мой ком-объект, содержащий функцию Add - добавляет товары в БД приложения. на каждое добавление получается отдельный запрос (если товаров 30 000 выполняется 30 000 INSERT запросов). Как можно оптимизировать затраты. Пока что ничего лучше чем использовать TADOTable не придумал.

СУБД - MS Access

Автор: Данкинг 8.7.2011, 12:48
А как тут оптимизировать? Если надо добавить X записей, то потребуется X запросов на добавление, а как иначе?

Автор: cat512 9.7.2011, 17:38
Цитата(NieL @ 8.7.2011,  12:09)
задача такая, написать api для взаимодействия с бд приложения из 1C. проблема только с функцией добавления - пользователь пробегает по справочнику товаров в 1С и через мой ком-объект, содержащий функцию Add - добавляет товары в БД приложения. на каждое добавление получается отдельный запрос (если товаров 30 000 выполняется 30 000 INSERT запросов). Как можно оптимизировать затраты. Пока что ничего лучше чем использовать TADOTable не придумал.

СУБД - MS Access

Как вариант загонять всё в блоб, а потом разбирать на сервере, или пердавать на сервер структуру типа "массив записей"

Автор: ~FoX~ 9.7.2011, 18:15
NieL, К сожалению стандартные провайдеры доступа к *.mdb не позволяют добавлять несколько записей 
Код

INSERT TabName (Field1)
VALUE ("Value1"), ("Value2"), ("Value3")

Не сработает...
Более того даже объединение запросов на добавление тоже не позволительно:
Код

INSERT TabName (Field1)
VALUE ("Value1")
UNION
INSERT TabName (Field1)
VALUE ("Value2")

Так что только длинный цикл....  smile 

Автор: superVad 9.7.2011, 23:50
Только не делай комит после каждого добавления.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)