|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
Кто-нибудь знает как в таблицу добавить не одну, а несколько записей? Причём не в цикле, а сразу одним запросом. А то у меня циклическое заполнение медленно работает. :( Max Pro ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 18:23 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
А можно поконкретнее - кто источник , а кто получатель данных Варианты: Источник Получатель ----------------------------------------------------- 1 - Сервер БД (БД) DataSet (DataTable) 2 - DataSet(DataTable) Сервер БД (БД) 3 - записи из одной DataTable DataSet (DataTable) и тд и тп ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 18:34 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
INSERT INTO tbls SELECT * FROM ( SELECT 1, 2, 3 UNION ALL SELECT 3, 4, 5 UNION ALL SELECT 6, 7, 8 ) as tbl ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 18:39 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
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 Друзья, к сожалению, я не знаю как ещё можно добавить записи в таблицу базы данных - вот как дурак добавляю по одной штуке. А это ведь медленно работает!!! Выручайте, у кого какие идеи. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 18:58 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
LepsikINSERT INTO tbls SELECT * FROM ( SELECT 1, 2, 3 UNION ALL SELECT 3, 4, 5 UNION ALL SELECT 6, 7, 8 ) as tbl Идею понял, спасибо большое. Буду пробовать. У кого-нибудь другие идеи есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 19:03 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
Max Pro У кого-нибудь другие идеи есть? Преобразовать данные в строку/XML (спросить как это делается на соотв. форуме) Передать сформированную строку/XML на строну сервера БД и выполнить добавление данных в таблицу там (спросить как это делается на соотв. форуме) Возможно (возможно!) это будет быстрее, чем вариант, который предложил Lepsik. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 19:13 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
Вот только попробовал в Аксесе способ 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2004, 20:12 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
Можно также использовать пакеты запросов (если сервер БД понимает пакеты) Например 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(); ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2004, 10:22 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
Спасибо, vooo, пакеты испробую. А пока я испробовал другой способ, свой собственный. Он дал хорошие результаты. Описание этого способа находится по адресу: http://www.aspnetmania.com/Forums/ForumMessage/47621.html Max Pro ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2004, 13:38 |
|
Как в таблицу добавить несколько записей одним запросом
|
|||
---|---|---|---|
#18+
Я попробовал пакеты. К сожалению, в Аксесе они не работают. Вот, смотрите на вложенный рисунок. Во поводу xml я не понял, поэтому опробовать этот способ я не знаю как. Кстати, что касается файлов, то кроме mdb-шника, который я уже опробовал, мне на ум приходит некий универсальный способ, описанный в книге "Visual Basic 6. Введение в программирование баз данных. Джон Коннел." Я имею ввиде через формирование таблицы не обязательно в электронном диске, можно и в физическом - на сервере например - формированию таблицы формата csv. Далее как в моём способе, связь с таблицей уже должна быть, фигачим запрос на добавление этой таблицы. Опыт создания csv показывает очень высокую скорость создания таких вот таблиц. Однако опробывать его я пока не буду, так как скорее всего эффективность не улучшится, а извращение каким было, таким и останется. Max Pro ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2004, 15:57 |
|
|
start [/forum/topic.php?fid=17&msg=32654701&tid=1354049]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 460ms |
0 / 0 |