Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/42: Рейтинг темы: голосов - 42, средняя оценка - 4.81
1 / 1 / 0
Регистрация: 02.12.2011
Сообщений: 30

Добавление записи в БД Acess через ADOQuery

06.05.2012, 17:40. Показов 9323. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста, хочу добавить данные в базу следующим образом:

C++
1
2
3
4
5
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO ghd (End) VALUES(:End)";
ADOQuery2->Parameters->Items[0]->Value=Edit1->Text;
ADOQuery2->ExecSQL();
Но вместо добавления строки вылетает ошибка
Миниатюры
Добавление записи в БД Acess через ADOQuery  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2012, 17:40
Ответы с готовыми решениями:

Добавление записи через ADOQuery
Всем привет, помогите плиз, хочу добавить даныне с едитов в БД, но вылетает ошибка Form1->ADOQuery1->Close(); ...

Добавление записи в таблицу через ADOQuery
Здравствуйте) В моей программе таблица базы данных подключена к компоненту ADOQuery, насколько я понимаю SQL в свойствах обязатльно для...

Добавление записи через ADOQuery
Помогите пожалуйста организовать добавление записи используя sql запрос. Причем имеются три таблицы ОС, Наименование, название Делаю...

42
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
07.05.2012, 06:25
Студворк — интернет-сервис помощи студентам
Sasha,

Цитата Сообщение от The_Immortal Посмотреть сообщение
после добавления записи
C++
1
2
3
4
5
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO ghd (End) VALUES(:End)";
ADOQuery2->Parameters->Items[0]->Value=Edit1->Text;
ADOQuery2->ExecSQL();
Как после этой штуки-то заюзать Refresh или Close-Open?
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
07.05.2012, 07:56
Люди помогите над Помогите. Отчет по выборке C++ Builder 6
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
07.05.2012, 23:42
Цитата Сообщение от The_Immortal Посмотреть сообщение
Sasha,


C++
1
2
3
4
5
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO ghd (End) VALUES(:End)";
ADOQuery2->Parameters->Items[0]->Value=Edit1->Text;
ADOQuery2->ExecSQL();
Как после этой штуки-то заюзать Refresh или Close-Open?
C++
1
2
3
4
5
6
7
8
9
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOConnection1->BeginTrans();
ADOQuery2->SQL->Text = "INSERT INTO ghd (End) VALUES(:End)";
ADOQuery2->Parameters->Items[0]->Value=Edit1->Text;
ADOQuery2->ExecSQL();
ADOConnection1->CommitTrans();
ADOQuery1->Active = false;
ADOQuery1->Active = true;
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
08.05.2012, 00:04
Sasha, гляньте вот это я целый день жду ответа*(https://www.cyberforum.ru/cpp-... ost3003064
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2012, 00:28
Sasha, таким образом грид сразу не обновляется после добавления записи
Обновляется таким образом: добавил одну запись - никаких изменений, добавил еще одну - Грид обновился, но показывает только добавленную предыдущую запись (ну и старые само собой), а только что добавленную запись не хочет... В чем может быть косяк?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.05.2012, 09:20
Цитата Сообщение от The_Immortal Посмотреть сообщение
Sasha, таким образом грид сразу не обновляется после добавления записи
Обновляется таким образом: добавил одну запись - никаких изменений, добавил еще одну - Грид обновился, но показывает только добавленную предыдущую запись (ну и старые само собой), а только что добавленную запись не хочет... В чем может быть косяк?
Значит расказываю 100% пример работы как рабоет и у самого.

Просто нужно использовать только один ADOQuery для добавления и для выборки, а перед добавлением нужно запомнить значение которое ты будешь вводить в базу
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2012, 16:04
Sasha, а можно примерчик, а то до меня чет туго доходит
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.05.2012, 16:38
В твоём случае будет примерно так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TLocateOptions Options;
Options.Clear();
Options << loPartialKey;
AnsiString dfg = Edit1->Text;
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO ghd ([End]) VALUES(:End)";
ADOQuery2->Parameters->ParamByName(End)->Value=Edit1->Text;
ADOQuery2->ExecSQL();
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "Select *From ghb";
ADOQuery2->Open();
ADOQuery2->Locate("End",dfg,Options);
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2012, 18:42
Sasha, что-то с локейт не могу разобраться...
C++
1
ADOQuery2->Locate("End",Edit1->Text,loPartialKey);

[BCC32 Error] Unit1.cpp(31): E2034 Cannot convert 'TLocateOption' to 'TLocateOptions'
[BCC32 Error] Unit1.cpp(31): E2342 Type mismatch in parameter 'Options' (wanted 'TLocateOptions', got 'TLocateOption')
Добавлено через 2 минуты
А, вот как надо...

C++
1
2
3
TLocateOptions Options;
Options << loPartialKey;
ADOQuery2->Locate("End",Edit1->Text,Options);
Ну напридумывали...

Добавлено через 1 минуту
Sasha, дык а все-таки без пост-выборки никак нельзя обойтись?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.05.2012, 18:55
К сожалению нет, но работает у меня на ура!!!!

Добавлено через 1 минуту
Цитата Сообщение от The_Immortal Посмотреть сообщение
Sasha, дык а все-таки без пост-выборки никак нельзя обойтись?
А без выборки ты никуда не денишься тебе надо заново сделать запрос что посмотреть новую строку

Добавлено через 1 минуту
Ты просто выборку определи в отдельную функцию и вызывай её и всё
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2012, 19:40
Sasha,
Цитата Сообщение от Sasha Посмотреть сообщение
Ты просто выборку определи в отдельную функцию и вызывай её и всё
Да это все понятно

А не подскажите мне вот что: в евентсах у ADOQuery есть событие AfterInsert - это что такое?
Что делает
C++
1
ADOQuery2->SQL->Insert()
?
И огромная просьба, подскажите, пожалуйста, как пользоваться справкой? ) Вот например я хочу посомтреть, что делает Insert() у TADOQuery. Что для этого надо набрать в хелпе?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.05.2012, 19:56
Цитата Сообщение от The_Immortal Посмотреть сообщение
AfterInsert
Событие, которое происходит после вставки строки в таблицу


Цитата Сообщение от The_Immortal Посмотреть сообщение
И огромная просьба, подскажите, пожалуйста, как пользоваться справкой?
Выделяешь необходимую фунцию или ставишь курсор перед ней и жмёшь F1

Добавлено через 10 минут
Кстати вопрос уже поднимался прочти здесь

Обновление ADOQuery
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
09.05.2012, 16:48
Цитата Сообщение от Sasha Посмотреть сообщение
Событие, которое происходит после вставки строки в таблицу
А как его получить?
C++
1
2
3
4
5
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO ghd ([End]) VALUES(:End)";
ADOQuery2->Parameters->Items[0]->Value=Edit1->Text;
ADOQuery2->ExecSQL();
Почему-то после этого событие ADOQuery2AfterInsert не срабатывает...

Добавлено через 15 часов 58 минут
Sasha, дык не подскажите, как все-таки попасть на событие AfterInsert у ADOQuery? Как образом надо добавить запись?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
09.05.2012, 17:20
Цитата Сообщение от The_Immortal Посмотреть сообщение
как все-таки попасть на событие AfterInsert у ADOQuery
Попадёшь ты в это событие тогда, когда строку будешь вставлять не через запрос, а через метод Insert()
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
09.05.2012, 17:21
Sasha, а можно примерчик использования этого метода на моем примере?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
09.05.2012, 17:30
C++
1
2
3
DataSource1->DataSource1->DataSet->Insert();
DataSource1->DataSet->FieldByName("End")->Value = Edit1->Text;
DataSource1->DataSource1->DataSet->Post();
1
1 / 1 / 0
Регистрация: 02.06.2011
Сообщений: 111
20.05.2012, 16:09
Здравствуйте!
а вот есть такой вопросик... я делаю инсерт в таблицу вот таким кодом:
C++
1
2
3
4
ADOQuery->SQL->Text = "insert into doctor([doctor_PID], [doc_specialty_ID], [doc_institution_ID]) values (:doctor_PID, :doc_specialty_ID, :doc_institution_ID)";
ADOQuery->Parametrs->ParamByName("doctor_PID")->Value = txtx_doctor_PID;
ADOQuery1->Parametrs-<ParamByName("doc_specialty_ID")->Value = txt_specialty_ID;
ADOQuery1->Parameters->ParamByName("doc_institution_ID")->Value = txt_institution_ID;
и получаю ошибку которая показана на скрине... -

хотя сам инсерт если делать руками всё проходит на ура... и по моему в ошибке говорится что то про кодировку? если да, то как привести к одной кодировке?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.05.2012, 17:15
Цитата Сообщение от vladimir123 Посмотреть сообщение
ADOQuery1->Parametrs-<ParamByName("doc_specialty_ID")->Value = txt_specialty_ID;
Что это?Стрелка в какую сторону

ADOQuery1->Parametrs-<ParamByName("doc_specialty_ID")->Value = txt_specialty_ID;
0
1 / 1 / 0
Регистрация: 02.06.2011
Сообщений: 111
20.05.2012, 18:17
Цитата Сообщение от Sasha Посмотреть сообщение
ADOQuery1->Parametrs-<ParamByName("doc_specialty_ID")->Value = txt_specialty_ID;
ой, опечатался)
имелось ввиду
ADOQuery1->Parametrs->ParamByName("doc_specialty_ID")->Value = txt_specialty_ID;

Добавлено через 1 час 1 минуту
всё разобрался с проблемой, косяк в самом написании инсерта)
0
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 13
20.05.2012, 22:39
Цитата Сообщение от Sasha Посмотреть сообщение
В твоём случае будет примерно так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TLocateOptions Options;
Options.Clear();
Options << loPartialKey;
AnsiString dfg = Edit1->Text;
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO ghd ([End]) VALUES(:End)";
ADOQuery2->Parameters->ParamByName(End)->Value=Edit1->Text;
ADOQuery2->ExecSQL();
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "Select *From ghb";
ADOQuery2->Open();
ADOQuery2->Locate("End",dfg,Options);
Здраствуйте Sasha пытаюсь воспроизвести данную программу, но у меня вылазеет ошибка 'ghb' не найдено. Помогите разобраться плиз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2012, 22:39

Добавление записи через adoquery
Привет я новичек в разработки приложении по запросам в adoquery, можно сказать только начинаю до этого работал в adotable, как пересел на...

Добавление записи в таблицу БД через ADOQuery
Доброго времени суток. Как добавить запись в таблицу БД через ADOQuery, получив нужные значения из эдитов? Для понимания: Ввел в три...

Добавление записи в БД Acess
Здравствуйте, возникла такая проблема: при добавлении записи в базу данных происходит только обновление информации в datagridView , а сама...

Программное удаление записи из БД Acess через Datagridview
Доброго времени суток. Реализовал добавление данных в БД, но не могу понять как эти данные из БД удалить. Должно работать так : ...

ADOQuery добавление записи в дочернюю таблицу
Сделано у меня сортировка таблиц по ключам detail - master и возник вопрос,как осуществить добавление,редактирование записи в дочерней...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru