0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100

Запрос выводит старые данные

03.06.2015, 20:14. Показов 1448. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чтобы обновить запрос (выполнить его заново) достаточно ли переключить свойство active на false и обратно на true? Просто такая проблема, на форме есть кнопка, при нажатии на которую выполняется запрос. Изменяю запись через консоль, потом пытаюсь выполнить запрос через кнопку, но при этом данные не меняются, то есть изменения не учитываются и выводятся старые данные. Если скомпилировать прогу заново, то выводятся уже новые данные, как нужно. Как правильно в таком случае обновить запрос? То есть нужно чтобы запрос перезапускался по нажатию кнопки, на данный момент у меня он срабатывает только при перезапуске программы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2015, 20:14
Ответы с готовыми решениями:

Не сохраняются старые данные при введении новых в дбгрид
Имеется БД, в ней хранятся вопросы, ответы и результаты тестирования. В таблицу Результаты данные выводятся из DbEditов при регистрации и...

Можно ли изменить старые данные в базе данных Дельфи?
можно изменить старые данные в базе данных дельфи?

Не выводит данные
В чем ошибка кода? begin form7.show; form7.ADOQuery1.Close; form7.ADOQuery1.SQL.Clear; form7.ADOQuery1.SQL.Text:='Select * from...

19
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
03.06.2015, 23:20
что за база, как подключаешься, что за консоль?
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
04.06.2015, 01:53
Цитата Сообщение от dark009 Посмотреть сообщение
Чтобы обновить запрос (выполнить его заново) достаточно ли переключить свойство active на false и обратно на true?
Достаточно.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
04.06.2015, 10:59
Для обновления данных есть метод Requery.
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
04.06.2015, 11:07
Цитата Сообщение от FIL Посмотреть сообщение
Для обновления данных есть метод Requery.
Только в TADOxxx и TIBxxx. В классическом TQuery нет.
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
04.06.2015, 15:31  [ТС]
Не знаю почему, но переключение не помогает, в таблице все равно выводятся старые данные. Помогает перезапуск программы или переподключение к базе.
Вот при таком коде запрос выводит обновленные данные как и нужно
Delphi
1
2
3
  SQLQuery1.ApplyUpdates;
  SQLTransaction1.Commit;
  SQLQuery1.Open;
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
04.06.2015, 22:43
ну, cachedupdates - это как бы отдельный режим, о котором предупреждать бы надо )))
а он тебе зачем?
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
05.06.2015, 15:14  [ТС]
Дело в том, что кнопка с таким кодом не работает, хотя должна работать:
Delphi
1
2
SQLQuery1.Active:=false;
SQLQuery1.Active:=true;
То есть данные не обновляются (только после перезапуска программы). А через SQLQuery1.ApplyUpdates; работает, но насколько я знаю это применяется для изменений
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
05.06.2015, 15:18
Цитата Сообщение от dark009 Посмотреть сообщение
То есть данные не обновляются
А почему что-то должно обновляться, если новые данные еще не записаны в БД?
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
05.06.2015, 15:49  [ТС]
новые данные как раз записаны в саму бд, но при обновлении запроса (false, true) эти новые записи не выводятся.
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
05.06.2015, 15:56
Цитата Сообщение от dark009 Посмотреть сообщение
новые данные как раз записаны в саму бд
Ошибаешься. Они кэшируются. А именно записываются в БД либо при закрытии программы, либо после кода аналогичного коду в #6
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
06.06.2015, 06:30
и все равно не вижу ответа про CachedUpdates
это специальый и не очень удобный режим работы
если выставил его случайно, убери

данные записываются в базу "окончательно" при завершении транзакции через Commit
после этого они становятся видны другим транзакциям
при CachedUpdated программа "запоминает" все изменения без обращения к серверу и по команде ApplyUpdates пытается исполнить все запомненное уже на сервере БД.
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
06.06.2015, 12:18  [ТС]
У меня как раз данные и записываются через commit:
Delphi
1
2
3
4
5
6
if (dbedit1.text='') or (dbedit2.text='') or (dbedit3.text='') or (dbedit4.text='') or (dbedit5.text='') or (dbedit6.text='') or (DBMemo1.Text='') then messagedlg('Есть незаполненные поля', mtWarning, [mbOK], 0) else
  begin
  Form1.SQLQuery1.ApplyUpdates;
  Form1.SQLTransaction1.Commit;
  Form1.SQLQuery1.Active:=true;
  end;
После этого проверял записи в самой бд и она там добавляется, но в приложении при обновлении запроса ее нет, только после закрытия и открытия программы появляется. Или я вас неправильно понимаю.
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
07.06.2015, 18:24
Цитата Сообщение от dark009 Посмотреть сообщение
Form1.SQLQuery1.ApplyUpdates;
что это?
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
07.06.2015, 19:38  [ТС]
Для сохранения изменений в самой базе
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
07.06.2015, 19:43
ничуть
post пишет изменения в БД
commit завершает транзакцию и эти данные становятся видны другим транзакциям
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
07.06.2015, 19:55  [ТС]
то есть для сохранения изменений достаточно этого?
Delphi
1
2
SQLQuery1.Post;
SQLTransaction1.Commit;
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
07.06.2015, 20:05
если не стоит CachedUpdates = true
об этом я и спрашивал
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
07.06.2015, 20:15  [ТС]
это свойство у sqlquery?
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
07.06.2015, 21:06
пора уже почитать
http://www.delphisources.ru/pa... tesql.html

Добавлено через 5 минут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2015, 21:06
Помогаю со студенческими работами здесь

Не выводит данные на панель
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...

Выводит не те данные (потоки)
Всем привет Столкнулся с проблемой, программа выдает не те данные Т.е работают потоки, программа делает все нужные ей проверки и если...

Запрос ADOQuery в Делфи 7 выводит не все записи
Появилась это проблема после того как я заполнила таблицу с клиентами. По началу думала что проблема в том что в поле FIO у меня появились...

Выводит сообщение: В операции должен использоваться обновляемый запрос
Всем привет!) Суть проблемы: есть приложение, которое работает с файлом БД Акцесс, компиляцию это приложение проходит успешно, и даже при...

Не получается задача на матрицы. В ответе выводит старые данные
Доброго времени суток. Такая задача: задать размер массива в ручную, элементы автоматически. строку с наименьшей сумой элементов разделить...


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

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

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
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
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru