Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61

Ошибка синтаксиса INSERT INTO

23.12.2012, 10:28. Показов 1477. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Ошибка синтаксиса INSERT INTO.
Подскажите что не так.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FOrm1.ADOQueryCopyZak.Active:=false;
FOrm1.ADOQueryCopyZak.SQL.Clear;
FOrm1.ADOQueryCopyZak.SQL.Text := 'INSERT INTO ZakazNaryad (номер, работа, Кол-во, цена, скидка, всего, слесарь, приемщик) VALUES (:Nmbr, :Wrk, :klvo, :prc, :skdk, :al, :sls, :prie) where Номер=:nomer;';
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('Nmbr').Value := Form1.ADOQueryPredZak.FieldByName('Номер').Asinteger;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('Wrk').Value := Form1.ADOQueryPredZak.FieldByName('работа').AsString;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('klvo').Value := Form1.ADOQueryPredZak.FieldByName('кол-во').Asinteger;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('prc').Value := Form1.ADOQueryPredZak.FieldByName('цена').AsInteger;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('skdk').Value := Form1.ADOQueryPredZak.FieldByName('скидка').AsInteger;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('al').Value := Form1.ADOQueryPredZak.FieldByName('всего').AsInteger;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('sls').Value := Form1.ADOQueryPredZak.FieldByName('слесарь').AsString;
FOrm1.ADOQueryCopyZak.Parameters.ParamByName('prie').Value := Form1.ADOQueryPredZak.FieldByName('приемщик').AsString;
Form1.ADOQueryCopyZak.Parameters.ParamByName('nomer').Value:=Form2.Label4.Caption;
Form2.Memo1.Text:=Form1.ADOQueryCopyZak.SQL.Text;
FOrm1.ADOQueryCopyZak.ExecSQL;
FOrm1.ADOQueryCopyZak.Active:=true;

Текст из мемо:
SQL
1
INSERT INTO ZakazNaryad (номер, работа, Кол-во, цена, скидка, всего, слесарь, приемщик) VALUES (:Nmbr, :Wrk, :klvo, :prc, :skdk, :al, :sls, :prie) WHERE Номер=:nomer;
В таблицах ZakazNaryad имеется счетик, может быть в нем проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2012, 10:28
Ответы с готовыми решениями:

Ошибка синтаксиса в инструкции insert into
procedure TForm3.sButton2Click(Sender: TObject); begin if (sedit1.text <> '') and (sedit2.text <> '') and (sedit3.text <> '') then ...

Ошибка синтаксиса в инструкции INSERT INTO
procedure TForm16.Button1Click(Sender: TObject); var s:String; begin begin s:='INSERT INTO Заказы (, , , ,, ,) VALUES...

Ошибка синтаксиса в инструкции insert into
Добрый вечер! Пишу код, который должен добавлять данные в базу данных MSAccess. Вроде бы все должно работать но вылазит ошибка...

14
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
23.12.2012, 11:02
У запроса INSERT не может быть оператора WHERE.
1
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 11:20  [ТС]
а как тогда правильно выбирать значения?
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.12.2012, 11:54
Цитата Сообщение от sectorb Посмотреть сообщение
а как тогда правильно выбирать значения?
Процесс выборки - это для операторов SELECT, UPDATE и DELETE - там нужно отобрать строки, прежде чем их соответсвенно извлекать на клиента, обновлять или удалять. Это операции над множеством строк - там это уточнение/фильрация нужна.
А INSERT - это вставка 1й единственной строки. Если вам не надо - не вставляйте. Фильтрация на уровне SQL-оператора тут не нужна.
1
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 12:06  [ТС]
Тогда другой вопрос, как организовать копирование нескольких строк из одной таблицы в другую?
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.12.2012, 12:37
sectorb, это совсем другая модификация оператора INSERT
было
SQL
1
INSERT INTO ...() VALUES(...)
станет
SQL
1
INSERT INTO ...() SELECT ... FROM ... WHERE ...
1
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 12:50  [ТС]
Окей, сделал вот так:

Delphi
1
2
3
4
5
6
7
8
9
10
FOrm1.ADOQueryCopyZak.Active:=false;
FOrm1.ADOQueryCopyZak.SQL.Clear;
FOrm1.ADOQueryCopyZak.SQL.Add('INSERT INTO ZakazNaryad (номер, работа, Кол-во, цена, скидка, всего, слесарь, приемщик)');
FOrm1.ADOQueryCopyZak.SQL.Add('SELECT  (номер, работа, Кол-во, цена, скидка, всего, слесарь, приемщик)');
FOrm1.ADOQueryCopyZak.SQL.Add('FROM PredZakaz');
Form1.ADOQueryCopyZak.SQL.Add('WHERE Номер=:nomer;');
Form1.ADOQueryCopyZak.Parameters.ParamByName('nomer').Value:=Form2.Label4.Caption;
Form2.Memo1.Text:=Form1.ADOQueryCopyZak.SQL.Text;
FOrm1.ADOQueryCopyZak.ExecSQL;
FOrm1.ADOQueryCopyZak.Active:=true;
Получаю - Ошибка синтаксиса в инструкции INSERT INTO
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.12.2012, 12:53
потому что скобки после SELECT вы выдумали
0
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 12:56  [ТС]
Скобки убрал, та же ошибка
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.12.2012, 13:15
1) Приведите текст ошибки полностью и дословно на языке оригинала.
2) Скопируйте сюда полный текст запроса, который получился. Вижу, что у вас он оседает в Form2.Memo1.Text
3) Уберите последюнюю строку
Delphi
1
FOrm1.ADOQueryCopyZak.Active:=true;
- ей нечего делать, если у вас не селективный запрос.
0
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 13:23  [ТС]
1) Картинку прикрепил
2)
SQL
1
2
3
4
INSERT INTO ZakazNaryad (номер, работа, Кол-во, цена, скидка, всего, слесарь, приемщик)
SELECT  номер, работа, Кол-во, цена, скидка, всего, слесарь, приемщик
FROM PredZakaz
WHERE Номер=:nomer;
3) Строку убрал
Миниатюры
Ошибка синтаксиса INSERT INTO  
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.12.2012, 13:32
Какой у вас сервер СУБД? Возможно он не умеет INSERT ... INTO ... SELECT
0
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 13:36  [ТС]
MS Access
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.12.2012, 13:52
С ним не работал. Спросите в профильном разделе насколько законен такой синтаксис для Access.
1
 Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61
23.12.2012, 14:32  [ТС]
Спасибо, проблема актуальна

Добавлено через 30 минут
спасибо всем за помощь, проблема решилась заключением названий всех полей в скобки.
Вот код:

Delphi
1
2
3
4
5
6
7
8
9
FOrm1.ADOQueryCopyZak.Active:=false;
FOrm1.ADOQueryCopyZak.SQL.Clear;
FOrm1.ADOQueryCopyZak.SQL.Add('INSERT INTO ZakazNaryad ([номер], [работа], [Кол-во], [цена], [скидка], [всего], [слесарь], [приемщик])');
FOrm1.ADOQueryCopyZak.SQL.Add('SELECT  [PredZakaz.номер], [PredZakaz.работа], [PredZakaz.Кол-во], [PredZakaz.цена], [PredZakaz.скидка], [PredZakaz.всего], [PredZakaz.слесарь], [PredZakaz.приемщик]');
FOrm1.ADOQueryCopyZak.SQL.Add('FROM PredZakaz');
Form1.ADOQueryCopyZak.SQL.Add('WHERE Номер=:nomer;');
Form1.ADOQueryCopyZak.Parameters.ParamByName('nomer').Value:=Form2.Label4.Caption;
Form2.Memo1.Text:=Form1.ADOQueryCopyZak.SQL.Text;
FOrm1.ADOQueryCopyZak.ExecSQL;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2012, 14:32
Помогаю со студенческими работами здесь

Ошибка синтаксиса в инструкции INSERT INTO
Скажите, пожалуйста, где ошибка. begin if (Edit1.Text <>'') and (Edit2.Text<>'') and (Combobox1.Text<>'') then begin With...

Ошибка синтаксиса в инструкции INSERT TO
begin datamodule2.ADOQuery3.SQL.Clear; datamodule2.ADOQuery3.SQL.Text:='insert into Выписка (Регистрационный номер, ФИО, Адрес, Дата...

Ошибка синтаксиса в инструкции INSERT INTO
Использую Indy. Задача у меня такая, клиентская часть программы высылает на сервер в текстовом виде информацию о компьютере. Сервер...

Ошибка синтаксиса INSERT INTO?
Код: db.Execute('INSERT INTO News (Date, News) VALUES ('' + Date_ + '','' + Descr + '');'); Чего может быть неаерного? Я уже всё...

Ошибка синтаксиса INSERT INTO
Привет форумчане! У меня такая проблема. При компиляции выскакивает ошибка " Ошибка синтаксиса в конструкции INSERT INTO". вот код ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru