powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как в таблицу добавить несколько записей одним запросом
11 сообщений из 11, страница 1 из 1
Как в таблицу добавить несколько записей одним запросом
    #32653548
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает как в таблицу добавить не одну, а несколько записей?
Причём не в цикле, а сразу одним запросом.
А то у меня циклическое заполнение медленно работает.
:(
Max Pro
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32653573
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно поконкретнее - кто источник , а кто получатель данных Варианты:


Источник Получатель
-----------------------------------------------------
1 - Сервер БД (БД) DataSet (DataTable)
2 - DataSet(DataTable) Сервер БД (БД)
3 - записи из одной DataTable DataSet (DataTable)

и тд и тп
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32653577
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSERT INTO tbls SELECT * FROM
(
SELECT 1, 2, 3
UNION ALL
SELECT 3, 4, 5
UNION ALL
SELECT 6, 7, 8
) as tbl
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32653594
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voooА можно поконкретнее - кто источник , а кто получатель данных Варианты:


Источник Получатель
-----------------------------------------------------
1 - Сервер БД (БД) DataSet (DataTable)
2 - DataSet(DataTable) Сервер БД (БД)
3 - записи из одной DataTable DataSet (DataTable)

и тд и тп
Так, наводящий вопрос понял. Уточняю поконкретнее:
Источник - массив. Получатель - таблица базы данных.
Вот, смотри примерчик:

for i=0 to 1000
iA=iArray(i) 'Здесь iArray - одномерный массив целого типа
REM заполнение tabSch
sSql = "INSERT INTO tabSch ( Номер, ДатаСч, Логика ) "
sSql &= "SELECT " & iA & " AS Выражение1, Now() AS Выражение2, False AS Выражение3;"
iNum = ZapExe(sSql) 'Здесь ZapExe() - функция, выполняющая запрос SQL
next i

Друзья, к сожалению, я не знаю как ещё можно добавить записи в таблицу базы данных - вот как дурак добавляю по одной штуке.
А это ведь медленно работает!!!

Выручайте, у кого какие идеи.
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32653601
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsikINSERT INTO tbls SELECT * FROM
(
SELECT 1, 2, 3
UNION ALL
SELECT 3, 4, 5
UNION ALL
SELECT 6, 7, 8
) as tbl

Идею понял, спасибо большое. Буду пробовать.
У кого-нибудь другие идеи есть?
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32653611
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro
У кого-нибудь другие идеи есть?

Преобразовать данные в строку/XML (спросить как это делается на соотв. форуме)
Передать сформированную строку/XML на строну сервера БД и выполнить добавление данных в таблицу там (спросить как это делается на соотв. форуме)

Возможно (возможно!) это будет быстрее, чем вариант, который предложил Lepsik.
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32653645
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только попробовал в Аксесе способ Lepsik.
Специально создал табличку с тремя полями p1, p2, p3 (целого типа). И добавил в эту табличку поле Код (счётчик).
Теперь запускаю запрос SQL:
INSERT INTO tab1temp ( p1, p2, p3 ) select * from
(
select 1, 2, 3
union all
select 4, 5, 6
union all
select 7, 8, 9
) as tab3temp;
Запрос этот не работает! Представляете? Я уж и видоизменял его, убирая ненужные с моей точки зрения "all", я уж пытался перед "union" точку с запятой добавлять - не помогает.
Вот смотрите, вкладываю картинку, снимок экрана, на котором видно, как ругается Аксес.

Max Pro
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32654048
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно также использовать пакеты запросов (если сервер БД понимает пакеты)
Например
Dim sql,con As String;

con="параметры коннекта"
sql="Insert into Table values........ ;"&_
"Insert into Table1 values........ ;"&_
"Insert into TableN values........ "
Dim cmd As New SqlCommand(sql,con);
cmd.ExecuteCommand();
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32654701
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, vooo, пакеты испробую.
А пока я испробовал другой способ, свой собственный.
Он дал хорошие результаты.
Описание этого способа находится по адресу:
http://www.aspnetmania.com/Forums/ForumMessage/47621.html
Max Pro
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32655180
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я попробовал пакеты. К сожалению, в Аксесе они не работают.
Вот, смотрите на вложенный рисунок.
Во поводу xml я не понял, поэтому опробовать этот способ я не знаю как.
Кстати, что касается файлов, то кроме mdb-шника, который я уже опробовал, мне на ум приходит некий универсальный способ, описанный в книге "Visual Basic 6. Введение в программирование баз данных. Джон Коннел." Я имею ввиде через формирование таблицы не обязательно в электронном диске, можно и в физическом - на сервере например - формированию таблицы формата csv. Далее как в моём способе, связь с таблицей уже должна быть, фигачим запрос на добавление этой таблицы. Опыт создания csv показывает очень высокую скорость создания таких вот таблиц. Однако опробывать его я пока не буду, так как скорее всего эффективность не улучшится, а извращение каким было, таким и останется.
Max Pro
...
Рейтинг: 0 / 0
Как в таблицу добавить несколько записей одним запросом
    #32655879
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max ProВо поводу xml я не понял, поэтому опробовать этот способ я не знаю как.xml, действительно, не работает для БД типа Access. Хотя в самом Access импорт из xml есть.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как в таблицу добавить несколько записей одним запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]