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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько Insert - запросов, не хочет выполнять 
:(
    Опции темы
Poseidon
Дата 20.2.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: нет
Всего: 133



В программе нужно добавить поле в таблицу запросом. Понятно, Insert - запросом. Полей нужно добавить достаточно много, поэтому решил сделать все одним запросом, а не крутить один запрос в цикле. Сам запрос формируется в цикле, и если быть точным до символа, то имеет такой вид (цикл был принудительно "урезан" до 3-х итераций. На самом деле их с десяток:

Код

INSERT INTO Vari (CodeWork, CodeSection, CodeAddDel,
DateAdd, DateCalc, CodeCategor, CodeRate, Summa,
Days, Hours, Procent, CodeStat, IDAnalit, IsOtkl)
VALUES
(
35,
3,
510,
"01.01.2009",
"01.01.2009",
6,
404,
500000,
0, 0, 0, 0, 0, "0")
,
(
123,
3,
510,
"01.01.2009",
"01.01.2009",
5,
409,
5000000,
0, 0, 0, 0, 0, "0")
,
(
185,
3,
510,
"01.01.2009",
"01.01.2009",
5,
407,
100000,
0, 0, 0, 0, 0, "0")


При этом, если выполнить запрос, где будет добавляться только одна запись:
Код

INSERT INTO Vari (CodeWork, CodeSection, CodeAddDel,
DateAdd, DateCalc, CodeCategor, CodeRate, Summa,
Days, Hours, Procent, CodeStat, IDAnalit, IsOtkl)
VALUES
(
35,
3,
510,
"01.01.2009",
"01.01.2009",
6,
404,
500000,
0, 0, 0, 0, 0, "0")

то все ОК.

В чем может быть проблема? Чуется мне что формат запроса не тот, хотя брал отсюда. Может BDE не умеет обратбатывать такие запросы?

Добавлено через 2 минуты и 13 секунд
Забыл написать, ругается на 15-й символ.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
vladimir74
Дата 20.2.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 28.11.2006

Репутация: нет
Всего: 3



не уверен, что можно VALUES через запятую слать...

Добавлено через 3 минуты и 7 секунд
только что проверил у себя. Как минимум firebird этого не позволяет....
да и что то я не припомню такого синтаксиса вообще.... :(

Добавлено через 4 минуты и 1 секунду
Цитата(Poseidon @  20.2.2009,  12:22 Найти цитируемый пост)
Забыл написать, ругается на 15-й символ. 

т.е на запятой...
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Rodman
Дата 20.2.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Цитата(Poseidon @  20.2.2009,  14:22 Найти цитируемый пост)
Забыл написать, ругается на 15-й символ. 

какими словами?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
vladimir74
Дата 20.2.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 28.11.2006

Репутация: нет
Всего: 3



Цитата(Poseidon @  20.2.2009,  12:22 Найти цитируемый пост)
Чуется мне что формат запроса не тот, хотя брал отсюда. 

инткресно вообще то, даже не знаю кому верить...
на том сайте и в правду указан такой синтекс, но кроме него, никто про такую возможность не говорит :(
сейчас попробую на какой нить таблице в phpMyAdmin если он не сможет то ИМХО MySQL этого тоже не может...
Но это 100% не стандартный формат для sql!!
так что насчет парадокса - это очень большой вопрос...

Добавлено через 8 минут и 27 секунд
хм MySQL это и в правду может  smile не ожидал....
тогда смотри в документацию по парадоксу....

Это сообщение отредактировал(а) vladimir74 - 20.2.2009, 15:06
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Kbl4AH
Дата 20.2.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: нет
Всего: 15



Запрос на добавление одной записи (таким способом можно вставить только одну запись в sql; пробовал в Oracle вставить так несколько записей - не получилось):
Код

INSERT INTO назначение [(поле_1[, поле_2[, ...]])]
VALUES (значение_1[, значение_2[, ...])


Запрос на добавление нескольких записей:
Код

INSERT INTO назначение [IN внешняяБазаДанных] [(поле_1[, поле_2[, ...]])]
SELECT [источник.]поле_1[, поле_2[, ...]
FROM выражение

Попробовал вставить 2 записи, по-моему - не айс:
Код

insert into card (tabnum, fam) 
select 1, '1' from dual  
union all
select 2, '2' from dual

Имхо вставляй в цикле, только текст запроса каждый раз не изменяй, а введи переменные и только их значения в цикле изменяй... а после цикла commit сделаешь...

Это сообщение отредактировал(а) Kbl4AH - 20.2.2009, 16:01
PM MAIL ICQ   Вверх
Poseidon
Дата 23.2.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: нет
Всего: 133



Цитата(Rodman @  20.2.2009,  14:55 Найти цитируемый пост)
какими словами?
Неверный символ, какими еще smile

В общем, стало понятно что SQL-синтаксис Парадокса не умеет это обрабатывать, но появилась одна неприятность. При добавлении порядка 2000 записей происходит достаточно заметное "подвисание" секунды на 2-3. Если учесть, что комп не такой уж и старенький и предполагается запускать программу и на более стабых мощностях, неприятность серьезная. Есть ли еще какой выход, кроме как крутить Insert в цикле?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие СУБД | Следующая тема »


 




[ Время генерации скрипта: 0.0654 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.