С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100

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

03.06.2015, 20:14. Показов 1357. Ответов 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
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
03.06.2015, 23:20
что за база, как подключаешься, что за консоль?
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
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
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
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
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 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
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
05.06.2015, 15:18
Цитата Сообщение от dark009 Посмотреть сообщение
То есть данные не обновляются
А почему что-то должно обновляться, если новые данные еще не записаны в БД?
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
05.06.2015, 15:49  [ТС]
новые данные как раз записаны в саму бд, но при обновлении запроса (false, true) эти новые записи не выводятся.
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
05.06.2015, 15:56
Цитата Сообщение от dark009 Посмотреть сообщение
новые данные как раз записаны в саму бд
Ошибаешься. Они кэшируются. А именно записываются в БД либо при закрытии программы, либо после кода аналогичного коду в #6
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 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
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 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
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 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
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
07.06.2015, 20:05
если не стоит CachedUpdates = true
об этом я и спрашивал
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
07.06.2015, 20:15  [ТС]
это свойство у sqlquery?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru