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

Обновление ADOQuery

24.03.2011, 12:00. Показов 4829. Ответов 9
Метки нет (Все метки)

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

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
ADOQuery2->Active=false;
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("INSERT INTO grup (N_grup, fio_ruk) VALUES("+ComboBox2->Text+",'"+ComboBox1->Text+"');");
ADOQuery2->ExecSQL();
ADOQuery2->Active=false;
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("Select * FROM grup;");
ADOQuery2->Open();
ADOQuery2->SQL->Add("UPDATE grup SET(N_grup, fio_ruk);");
 
Label1->Caption=ADOQuery2->FieldByName("N_grup")->AsString;
Label2->Caption=ADOQuery2->FieldByName("fio_ruk")->AsString;
После нажатия кнопки должно произойти событие добавление и вывода добавленных значений в Label1 и Label2.Данные добавляются но выводятся лишь при перезапуске программы!

Как сделать чтобы выводилось сразу?спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2011, 12:00
Ответы с готовыми решениями:

Запрос ADOQuery внутри другого ADOQuery реален?
Помогите сформировать запрос для двух ADOQuery. Есть 2 таблицы БД mssql: sotrudniki , table_hlp(Вспомогательная таблица для делания...

ADOQuery
ADOQuery при попытке сделать его активным выдает ошибку "Missing SQL property". Источник для ADOQuery ADOConnection. Он подключился...

ADOQuery
Всем привет, прошу помощи... Делаю запрос в Аксес... Form1->ADOQuery1->SQL->Add("SELECT * from users where Serial="+AnsiString(i));...

9
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.03.2011, 16:40
А так?

C++
1
2
3
4
5
6
7
8
9
10
ADOQuery2->Active=false;
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO grup (N_grup, fio_ruk) VALUES('"+ComboBox1->Text+"','"+ComboBox2->Text+"')";
ADOQuery2->ExecSQL();
ADOQuery2->Active=false;
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("Select * FROM grup");
ADOQuery2->Open();
Label1->Caption=ADOQuery2->FieldByName("N_grup")->AsString;
Label2->Caption=ADOQuery2->FieldByName("fio_ruk")->AsString;
0
1 / 1 / 1
Регистрация: 01.03.2011
Сообщений: 89
24.03.2011, 17:18  [ТС]
Не работает и так(
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.03.2011, 17:34
Что пишет?

Добавлено через 15 минут
Кстати у тебя я так понял, 2 ADOQuery или как? Ты в одном добавляешь, а в другом обновляешь?
0
1 / 1 / 1
Регистрация: 01.03.2011
Сообщений: 89
24.03.2011, 17:40  [ТС]
Ничего не пишет, просто результат только после перезапуска!
ADOQuery- их два, но обновляю в одном и добавляю в нем же!
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.03.2011, 17:47
Тогда можешь попробывать метод Requery(); только после того как откроешь запрос. А за UPDATE вообще забудь, здесь он тебе не нужен.
1
1 / 1 / 1
Регистрация: 01.03.2011
Сообщений: 89
24.03.2011, 18:37  [ТС]
Попробовал, а в каком месте его вставить?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.03.2011, 20:12
C++
1
2
3
4
5
6
7
8
9
10
11
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "INSERT INTO grup (N_grup, fio_ruk) VALUES('"+ComboBox1->Text+"','"+ComboBox2->Text+"')";
ADOQuery2->ExecSQL();
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("Select * FROM grup");
ADOQuery2->Open();
ADOQuery2->Requery();
Label1->Caption=ADOQuery2->FieldByName("N_grup")->AsString;
Label2->Caption=ADOQuery2->FieldByName("fio_ruk")->AsString;
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
12.04.2011, 10:58
В случае когда изменение датасета выполняется не через его методы append, insert, update, delete, следует использовать два РАЗНЫХ объекта:
- собственно TADODataSet - для отображения
- TADOCommand (много лучше и универсальнее чем TADOQuery) - для изменения
После изменения отображающий TADODataSet переоткрывать с последующей автолокализацией записи (Close, Open, Locate(UID...)) либо использовать Requery как уже было сказано выше

Ну и еще, конечно, не забывать про подтверждения/откаты транзакций

Добавлено через 1 минуту
Вдогонку.
ОБЯЗАТЕЛЬНО ! Оба объекта должны работать в контексте одного соединения !
1
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 3
26.05.2013, 02:20
Цитата Сообщение от MsGuns Посмотреть сообщение
Добавлено через 1 минуту
Вдогонку.
ОБЯЗАТЕЛЬНО ! Оба объекта должны работать в контексте одного соединения !
Золотые слова! это надо писать всем первым пунктом!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.05.2013, 02:20
Помогаю со студенческими работами здесь

ADOQuery
Друзья! Нужна помощь. Ситуация такая, имеется приложение написанное в билдере ХЕ которое работает с СУБД Оракл. несколько форм, работающие...

ADOQuery
Ребят не могу понять почему ADOQuery не выполняет запрос с count()? В чем может быть проблема?

Запросы в ADOQuery
У меня есть вопрос как сделать чтобы два запроса выполнялись в ADOQuery:вот этот на дату: ADOQuery1.SQL.Add(SELECT * FROM "Выдача...

ADOQuery параметры
ADOQuery3->Active = false; ADOQuery3->SQL->Clear(); ADOQuery3->SQL->Add("SELECT ФИО, Компания, Дата1, Дата2, Причина"); ...

ADOQuery->Filter?
С++ Builder 6, TADOQuery. Использую фильтер, для отсеивания данных. Нужно отсеять по годам, т.е. страше 18, например. Как прописать...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru