Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2009, 22:15   #1
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
Вопрос Многострочный SQL запрос

Сформировал такой запрос:
Код:
INSERT INTO sites (Сайт,Зарегистрировано,Категория) VALUES ("http://www.1/",False,"-")
INSERT INTO sites (Сайт,Зарегистрировано,Категория) VALUES ("http://www.2/",False,"-")
INSERT INTO sites (Сайт,Зарегистрировано,Категория) VALUES ("http://www.3/",False,"-")
Пишет ошибку "Пропущен символ ( ; ) в конце инструкции SQL."Ставлю точку с запятой пишет другую ошибку: "Обнаружены символы за пределами инструкции SQL"

Что делать? Заранее спасибо)
Кста, еще можно ли с помощью ADO подключиться к БД с паролем?, а то я пробовал, у меня не получилось...
Joe_Tribbiani вне форума Ответить с цитированием
Старый 05.04.2009, 00:25   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

все верно:

1) ";" в конце вставки
2) СКЛ не поддерживает русских именований полей (у меня не получилось создать таблу с такими именами) - так что уточни имена полей
soleil@mmc вне форума Ответить с цитированием
Старый 05.04.2009, 12:03   #3
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Изменил названия полей на английские, поставил точки с запятой, всеравно пишет:
"Обнаружены символы за пределами инструкции SQL"
Joe_Tribbiani вне форума Ответить с цитированием
Старый 05.04.2009, 16:04   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

мне уже стало интересно - чо за субд, в которой можно такие имена давать?
еще не мешало бы полное описание созданной таблицы привести
как описано поле "Зарегистрировано"?

про пределы инструкции - предпочитаю юзать не двойные кавычки, а одинарные (в некоторых диалектах есть особенности их использования)
еще вариант, что не поддерживаются булевы операторы

Последний раз редактировалось soleil@mmc; 05.04.2009 в 16:06.
soleil@mmc вне форума Ответить с цитированием
Старый 05.04.2009, 21:09   #5
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

субд access
По одной записи добавляються, так что дело не в полях, а когда формирую многострочный запрос, то ошибка...
Joe_Tribbiani вне форума Ответить с цитированием
Старый 05.04.2009, 22:06   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ну давайте по чайной ложке в день: приведите код, с помощью которого пытаетесь вставить записи?
просто обычно квери умеет выполнять по одной инструкции
так что для полного счастья нужно юзать либо цикл, либо переписывать стандартный компонент под свои нужды, чтобы он мог выполнять целые скрипты
soleil@mmc вне форума Ответить с цитированием
Старый 06.04.2009, 13:48   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от soleil@mmc
просто обычно квери умеет выполнять по одной инструкции
+1

не буду утверждать, но единственная СУБД, из тех, с которыми я сталкивался, позволявшая выполнять множественные insert - была MySQL (но там всё равно был немного другой синтаксис)
Так что, думаю, что в вашей Ассеss прийдётся действительно в цикле добавлять записи. Каждый раз под одной штуке!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.04.2009, 14:25   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно попробовать TStoredProc для этого.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2009, 14:53   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не буду утверждать, но единственная СУБД, из тех, с которыми я сталкивался, позволявшая выполнять множественные insert - была MySQL (но там всё равно был немного другой синтаксис)
ну в оракла тоже можно много чего загнать, особенно если поюзать sql_plus-а, то и гигантских размеров скрипты
в дельфаке под это дело можно заюзать компоненты от одака

2Joe_Tribbiani
для этого
Код:
INSERT INTO sites (Сайт,Зарегистрировано,Категория) VALUES ("http://www.1/",False,"-");
лучше юзать параметризованный запрос (не вечно же вам писать для акссеса)
Код:
INSERT INTO sites (Сайт,Зарегистрировано,Категория) VALUES (:p0, :p1, :p2);
и по именам параметров подставлять значения

Последний раз редактировалось soleil@mmc; 06.04.2009 в 14:56.
soleil@mmc вне форума Ответить с цитированием
Старый 06.04.2009, 17:24   #10
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Ладно, буду юзать цикл тогда, спс тем кто откликнулся)
Joe_Tribbiani вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL-запрос Dissonance БД в Delphi 5 17.06.2008 07:11
SQL запрос SERG1980 БД в Delphi 6 19.10.2007 23:03
SQL-запрос Elena БД в Delphi 3 21.05.2007 11:34
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15