![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
обновление датасета
guest © (2010-09-06 15:42:00)Добрый день. Данные грида обновляются полностью каждый раз при открытии окна с гридом.
Даже если таблица за это время не изменилась, из базы заново подгружаются ВСЕ записи.
Обновляю так:
dataset.active:=false;
dataset.active:=true;
Как сделать обновление оптимальным? Чтобы передавались ТОЛЬКО измененные записи?
И с какими СУБД такое обновление возможно?
guest (2010-09-06 17:45:00) [21]
> Реально выборки делать оптимальными - строго только то что
> нужно.
Ну допустим пишу:
select * from table where modifiedtime>parameter
Тогда у меня в гриде и отобразятся только изм. записи, старых не будет.
Sergey13 (2010-09-06 17:18:00) [22]> [0] guest (06.09.10 15:42)
> Как сделать обновление оптимальным?
ИМХО
Реально выборки делать оптимальными - строго только то что нужно.
Ega23 (2010-09-06 17:07:00) [23]
> Ну это update, а Insert/delete вполне можно было бы контролировать
Я тебе по секрету скажу, что и update-delete можно контролировать.
guest (2010-09-06 17:06:00) [24]
> UPDATE ... SET a = 200 WHERE a = 200
> Описка, должно быть:
> UPDATE ... SET a = 200 WHERE a = 100
Ну это update, а Insert/delete вполне можно было бы контролировать
И. Павел (2010-09-06 16:54:00) [25]
UPDATE ... SET a = 200 WHERE a = 200
Описка, должно быть:
UPDATE ... SET a = 200 WHERE a = 100
Ega23 (2010-09-06 16:54:00) [26]
> А сервер разве логи не ведет какие запросы когда поступали?
А толку тебе с этих логов? Или мсье собрался их парсить руками? Ну тогда мсье знает толк в извращениях.
Чоткие пацаны в табличку поле дата-время добавляют. Когда запись добавилась-обновилась. Потом делают по этому полю OrderBy, запоминают последнее значение, делают выборку начиная с него.
И. Павел (2010-09-06 16:53:00) [27]> А сервер разве логи не ведет какие запросы когда поступали?
А что может дать информация, что а 22:00 выполнился запрос UPDATE ... SET a = 200 WHERE a = 200? Как теперь понять по этому запросу, какие из записей изменились, а какие изначально содержали a=200?
guest (2010-09-06 16:49:00) [28]
> А как база узнает, что записи изменены по сравнению с предыдущей
> выборкой? Можно, конечно, создавать временную таблицу/таблицы,
> но врят ли это будет оптимальнее.
А сервер разве логи не ведет какие запросы когда поступали?
> а если изменений нет совсем, то типа пусть будет пустой
> грид.
Нет, грид на время закрытия дочерней формы, в которой он содержится, не очищается. Я же форму закрываю методом close а не освобождаю.
Медвежонок Пятачок (2010-09-06 16:25:00) [29]Как сделать обновление оптимальным? Чтобы передавались ТОЛЬКО измененные записи?
а если изменений нет совсем, то типа пусть будет пустой грид.
И. Павел (2010-09-06 16:09:00) [30]А как база узнает, что записи изменены по сравнению с предыдущей выборкой? Можно, конечно, создавать временную таблицу/таблицы, но врят ли это будет оптимальнее.