Аватар для sectorb
1 / 1 / 0
Регистрация: 12.01.2010
Сообщений: 61

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

23.12.2012, 10:28. Показов 1497. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru