Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Множественный insert  [new]
palladin600
Member

Откуда: Minsk Power Station
Сообщений: 460
Ребят, такое дело,
код генерит на клиенте 1000 строк, типа:
"INSERT INTO t..."
"INSERT INTO t..."
"INSERT INTO t..."
...

мне надо каждую строку заинсертить в базу. Ну я, короче, делаю после каждой строки:
CN(0).Execute sQUERY, 0


по каждой записи капец долго. А сейчас как под 5000 записей, то это край.

Скажите, как пачкой заинсертить? Может какой отвязанный рекордсет создать, его набить данными, а потом сделать INSERT INTO t1 (SELECT * FROM MyRecordset) или как обычно вы делаете?
9 май 19, 06:20    [21881613]     Ответить | Цитировать Сообщить модератору
 Re: Множественный insert  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4165
palladin600, либо набор открыть на вставку и курсором бежать или в цикле Insert Into Values
9 май 19, 08:13    [21881621]     Ответить | Цитировать Сообщить модератору
 Re: Множественный insert  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 237
Если БД с таблицей, куда пишутся данные находятся не на локальном диске, то существенно ускорить процесс можно, если включить его в транзакцию. Но, если у вас запросы Insert Into Values, то это, в принципе, не очень хорошее решение.

ADODB.Recordset можно настроить так, что все добавленные в него записи будут писаться на диск оптом при выполнении UpdateBatch.
10 май 19, 09:30    [21882028]     Ответить | Цитировать Сообщить модератору
 Re: Множественный insert  [new]
Bango Bongo
Member

Откуда: Africa.Ivory Coast
Сообщений: 7552
и в чём проблема собирать строки по 500 записей на вставку ? или акс не держит такой формат?
12 май 19, 10:10    [21882670]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить