Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder и базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Andrew9
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 95
#1

ADO insert into, ошибка - Недопустимое имя столбца - C++ Builder БД

28.04.2013, 13:46. Просмотров 1288. Ответов 6
Метки нет (Все метки)

Всем привет, помогите с добавлением данных в базу.
В самом билдере 4 DBGrid связанных с базой и в них нормально отображаются несколько insert которые я писал в самом sql но нужно что бы из самой программы по нажатию кнопки в с++ Builder6 с полей Edit1 Edit2 добавлялись еще записи.
есть:
C++
1
2
3
4
DataModule->ADOQuery3->Close();
DataModule->ADOQuery3->SQL->Clear();
DataModule->ADOQuery3->SQL->Add ("insert into preparatu (id_lekarstva, nazva_lekarstva) values ("+Edit1->Text+", "+Edit2->Text+")");
DataModule->ADOQuery3->ExecSQL();
preparatu - таблица в MSSQL management studio
id_lekarstva, nazva_lekarstva поля этой таблицы, у обеих тип varchar(50). бывает в ID буква

Когда заполняю поля Edit1 и Edit2 вылазиет ошибка - Недопустимое имя столбца "тут то что я ввел в поле Edit1"

с одинарными скобками '+Edit1->Text+', '+Edit2->Text+' ошибка - символьные или двоичные данные могут быть усечены хотя под varchar зарезервировано 50 символов а ввожу 5-10. Подскажите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 13:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ADO insert into, ошибка - Недопустимое имя столбца (C++ Builder БД):

Ошибка: "Недопустимое имя для столбца"
Подскажите в чем не прав int d; d = Edit3->Text.ToInt(); d =...

ADO + Insert
Здравствуйте! Возникла такая проблема: при попытке добавить данные в базу...

ADO + MSSQL + INSERT =
Сам запрос: ADOQuery10->Close(); ADOQuery10->SQL->Text = "INSERT INTO...

При сохранении проекта в RAD Studio 2010 XE пишет ошибку "недопустимое имя файла"
Тему с моим вопросом не нашел пишу сюда)Новые проекты перестали сохраняться при...

Как сложить значения столбца в DBGrid1 (ADO) и вывести в Label
Перерыл весь иннет , ничего не нашел, помогите сделать сложение всех значений...

Ошибка в insert
Добрый день! Ошибка вылетает в случае, когда начальная дата отсутствует. Как с...

6
dalay_lama
79 / 79 / 50
Регистрация: 22.09.2012
Сообщений: 493
28.04.2013, 18:14 #2
Цитата Сообщение от Andrew9 Посмотреть сообщение
id_lekarstva
Вы уверены что это поле varchar? судя по названию похоже на счётчик
0
Andrew9
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 95
28.04.2013, 20:04  [ТС] #3
да уверен, вот insert из sql который щас нормально отображается в DBGrid в билдере

C++
1
2
3
GO
insert into preparatu values ( 'DF349065', 'Topifozam' );
GO
0
The_Immortal
1560 / 496 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
28.04.2013, 21:37 #4
Andrew9, так быть может возьмем текст в кавычки?

C++
1
DataModule->ADOQuery3->SQL->Add ("insert into preparatu (id_lekarstva, nazva_lekarstva) values ('"+Edit1->Text+"', '"+Edit2->Text+"')");
0
Andrew9
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 95
28.04.2013, 21:54  [ТС] #5
Спасибо получилось, но вылезло другое.
DBGrid стает пустым после нажатия на кнопку "добавить".
C++
1
select * from preparatu;
в sql показывает что да запись появилась в таблице но как быть с ДБгрид ? хотелось что бы юзер после добавления мог сразу увидеть результат в соседнем меню при просмотре.

Добавлено через 6 минут
При перезапуске проекта запись в DBGrid всётаки добавляется а без перезапуска можно как то обойтись ? Я так понимаю нужна команда на что то вроде reset ADOQuery.
Заранее благодарен.
0
The_Immortal
1560 / 496 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
28.04.2013, 21:56 #6
Andrew9, так Вы же уже запрос написали для разрешения этой проблемы:
Цитата Сообщение от Andrew9 Посмотреть сообщение
SQL
1
SELECT * FROM preparatu

C++
1
2
3
4
5
6
7
8
9
DataModule->ADOQuery3->Close();
DataModule->ADOQuery3->SQL->Clear();
DataModule->ADOQuery3->SQL->Add ("insert into preparatu (id_lekarstva, nazva_lekarstva) values ("+Edit1->Text+", "+Edit2->Text+")");
DataModule->ADOQuery3->ExecSQL();
 
DataModule->ADOQuery3->Close();
DataModule->ADOQuery3->SQL->Clear();
DataModule->ADOQuery3->SQL->Add ("select * from preparatu");
DataModule->ADOQuery3->Open();
1
Andrew9
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 95
28.04.2013, 22:06  [ТС] #7
Огромнейшее спасибо!! все проблемы порешал )
0
28.04.2013, 22:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 22:06
Привет! Вот еще темы с решениями:

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

Вход пользователя и ошибка "Недопустимое имя столбца"
Здравствуйте, помогите разобраться с причиной ошибки. Имеется форма входа...

Недопустимое имя столбца
SELECT * FROM dbo.tmp_fleettickets WHERE status = "ПЛ/НК закрыт" ; ...

Недопустимое имя столбца
Добрый день. Бд в MSSQL. В дельфе пытаюсь создать форму авторизации. На ней...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru