Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Vladgul Гость
|
Добавлено: Чт Июл 24 2003 10:24 Заголовок сообщения: Подскажите, как можно на SQL в одном запросе добавлять несколько записей к таблице. |
|
|
Проблема такая, в программе на Delphi использую базу формата paradox. В программе накапливаются данные (для повышения скорости обработки, программа-RealTime), затем по достижении определенного количества должен сбросить данные на диск. Причем, принципиально работаю только с SQL- запросами (не знаю еще на какой базе в конце остановлюсь).
Так вот, можно ли добавлять в одном запросе insert into table (field1,filed2 ...., fileldN) values (N1,N2, ...., NN) Несколько записей
Пробовал в таком виде: insert into table (field1,filed2 ...., fileldN) values (N1,N2, ...., NN), values (N1,N2, ...., NN), values (N1,N2, ...., NN) Не понимает 4 строку.
Если так нельзя, то как можно? Естественно, вариант на добавление 100 записей по одиночке не очень подходит из-за скорости выполнения. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Чт Июл 24 2003 14:28 Заголовок сообщения: Re: Подскажите, как можно на SQL в одном запросе добавлять несколько записей к таблице. |
|
|
Вообще говоря, способ добавления записей зависит от сервера скл. Какую команду принимает сервер, ту и давай. В твоем случае таких сервером является сама дельфи. Проверь по справке по встренному скл, но как будто все реализации используют два варианта: по одной записи
insert into table field1,filed2 ...., fileldN) values (N1,N2, ...., NN)
или из запроса
insert into table field1,filed2 ...., fileldN) from (select...)
В твоем письме смущает слово realtime. Realtime и SQL... Хмм... Трудно это совместить... Нет, я согласен, то SQL быстр, но в каких случаях! В твоем явно нужно что-то низкоуровневое. Типа формата SDF или вообще голые данные с заданным размером записи. Тогда не возникнет вопрос
>>> добавление 100 записей по одиночке
Да-с |
|
Вернуться к началу |
|
|
Valera Гость
|
Добавлено: Пт Июл 25 2003 03:08 Заголовок сообщения: Была такая проблема один в один - решена. (+) |
|
|
используй batchmove. Подсказка: имеем 2 таблицы парадокс, в отдельном потоке пишем данные в 1 таблицу, в другом скидываем данные из 2 таблицы в sql. меняем 1 на 2, пишем в 2, 1 скидываем. повышение скорости на 2 порядка. реально до 2000 записей в сек - и все успевало. PIII-933/512 WinNT 4.0 server + sp6a + SQL 7.0 + sp4. Загрузка проца -5%. И еще правильно проработай индексы в SQL. размер большой - большое время выборки. |
|
Вернуться к началу |
|
|
|