Массовая вставка данных в SQLQuery, получить итоговый запрос

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Код: Выделить всё

For i:=1 To Кол-во_запросов Do
zp.Script.Add('INSERT ...')
а потом
zp.Execute;

При таком подходе и должен выполнять по одному. Для массовой вставки нужно все это явно оформить в транзакцию.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Вот проект по массовой вставке записей из одной базы в другую. Скорость ограничена только скоростью чтения из ODBC
Нужны компоненты Zeos
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Ism, и что вы этим примером хотели сказать? Особенно если учесть, что метод ExecuteDirect вызывается не у TSqlQuery (или как там у Zeos), а у TZConnection.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Padre_Mortius писал(а):Ism, и что вы этим примером хотели сказать? Особенно если учесть, что метод ExecuteDirect вызывается не у TSqlQuery (или как там у Zeos), а у TZConnection.

Все равно откуда вызывается ExecuteDirect, оно просто кидает запрос на сервер, ради этого держать отдельный компонент не нужно.

Данная программа может пригодиться тем, кто хочет с максимальной скоростью перекачать данные между одинаковыми таблицами в разных базах
Ответить