С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
online
52 / 35 / 16
Регистрация: 11.02.2018
Сообщений: 221

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

29.05.2018, 17:37. Показов 1476. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане.

При каких либо действиях выдаётся ошибка: Ошибка синтаксиса(пропущен оператор) в выражении запроса:... (текст из Edit2)

Я до сих пор понять не могу свои ошибки в коде, может кто либо мне сможет объяснить, где тут ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm6::Button2Click(TObject *Sender)
{
ADOQuery1->Active=true;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO Questions (ID, Quest) VALUES ("+Edit8->Text+", "+Edit2->Text+"");
ADOQuery1->ExecSQL();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO Answers (qID, aID, Texts, Balls) VALUES ("+Edit1->Text+", "+Edit8->Text+", "+Edit3->Text+", 1)");
ADOQuery1->ExecSQL();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO Answers (qID, aID, Texts, Balls) VALUES ("+Edit1->Text+", "+Edit9->Text+", "+Edit4->Text+", 1)");
ADOQuery1->ExecSQL();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO Answers (qID, aID, Texts, Balls) VALUES ("+Edit1->Text+", "+Edit10->Text+", "+Edit6->Text+", 1)");
ADOQuery1->ExecSQL();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO Answers (qID, aID, Texts, Balls) VALUES ("+Edit1->Text+", "+Edit11->Text+", "+Edit5->Text+", 1)");
ADOQuery1->ExecSQL();
Form6->Visible = false;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.05.2018, 17:37
Ответы с готовыми решениями:

Ошибка синтаксиса
double q=DBText2->Caption/1000; q*= DM->ADOQuery4->FieldByName("KG")->AsFloat; DM->ADOQuery4->Edit(); DM->ADOQuery4->First(); for...

Ошибка синтаксиса SQL
Я заполнил DBComboBox данными из таблицы : DM->ADOQuery3->Close(); DM->ADOQuery3->SQL->Clear(); ...

Ошибка синтаксиса в предложении From
база даных аксес 6 таблиц в билдере подключил adoconection, 6 компоненты adotable, в настройке active должен быть true , когда изменяю из...

3
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.05.2018, 17:48
C++
1
ADOQuery1->SQL->Add("INSERT INTO Questions (ID, Quest) VALUES ("+Edit8->Text+", "+QuotedStr(Edit2->Text)+")");
1
online
52 / 35 / 16
Регистрация: 11.02.2018
Сообщений: 221
29.05.2018, 21:03  [ТС]
D1973,
Миниатюры
Ошибка синтаксиса  
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
30.05.2018, 04:54
Лучший ответ Сообщение было отмечено Mike_Boone как решение

Решение

С такой ошибкой Вам надо самому смотреть, какие конкретно данные будут добавляться в БД... Текст ошибки ясно указывает на то, что добавляемые в ключевое поле данные не являются уникальными...
Непонятно, на каком из запросов выдается эта ошибка, у Вас из 5... Вот и сделайте для всех 5-ти запросов следующее: перед командой выполнения запроса вставьте строку
C++
1
ShowMessage(ADOQuery1->SQL->Text);
и анализируйте, какие данные в какой момент добавляются и в какой конкретно момент возникает ошибка.

Добавлено через 25 минут
Но вот что-то мне подсказывает, что Вы напутали с подставляемыми в запрос значениями:
Возьмем таблицу Questions. Она содержит 2 поля, ключевым, по всей видимости, является поле ID. В это поле Вы вносите значение из поля ввода Edit8
Теперь смотрим таблицу Answers. По логике вещей она должна быть связана с таблицей Questions отношением "много к одному" по полям Answers.qID => Questions.ID. Ключевым полем должно являться поле aID, которое содержит уникальный номер записи в таблице. Но, если это так, почему Вы в индексное поле qID записываете данные не из поля ввода Edit8, как следовало бы, а из поля Edit1? А вот Edit8 используется у Вас как раз при внесении данных к ключевое поле aID... Но это поле содержит номер вопроса, который будет один и тот же для каждого из вариантов ответов... Вот Вам и нарушение уникальности...
Вот поэтому-то всегда и говорят, что "мухи - отдельно, котлеты - отдельно": не надо мешать в одну кучу данные и интерфейс. Ну а если мешаете, то хоть называйте свои контролы как-то поинформативней, чем Edit1, Edit2, ... , Edit666 - Вы же сами в них через месяц запутаетесь...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2018, 04:54
Помогаю со студенческими работами здесь

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

Ошибка синтаксиса в приложении FROM
Подскажите пожалуйста!!!!!! Не могу понять в чём ошибка. Ставлю свойство Active в true компонента ADOTable в true и сразу...

Ошибка синтаксиса в инструкции INSERT INTO
Собственно не работает этот кусок кода ADOQuery4->SQL->Clear(); ADOQuery4->SQL->Add("INSERT INTO (,,, , ,,) VALUES...

Ошибка синтаксиса в инструкции INSERT INTO
Выдает Ошибка синтаксиса в инструкции INSERT INTO В чем ошибка? ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ...

Ошибка синтаксиса в инструкции INSERT INFO
При выполнении запроса INSERT INTO VALUES (3,'"+Edit->Text+"'"); Выдает ошибку: "...'Ошибка синтаксиса в инструкции INSERT...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru