Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

обновление датасета


Страницы:   1 2

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]

А как база узнает, что записи изменены по сравнению с предыдущей выборкой? Можно, конечно, создавать временную таблицу/таблицы, но врят ли это будет оптимальнее.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо