Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Обновление   Найти похожие ветки 

 
тихий вовочка ©   (2004-07-27 07:32) [0]

У меня есть датасет, подчиненный другому (Корпорация -> член корпорации) У Клиент корпорации стоит RefreshSQL SELECT * FROM CUSTOMERS WHERE ID=:ID. Эти две таблицы Read Only, а любые изменения делаю в пишущем датасете. У пишущего поле GeneratorField заполнено. Так вот когда я добавляю новую запись (в модальном окне и пишущем датасете), она не видна в таблице Клиент корпорации, если же щелкнуть мышью на любую запись в таблице Корпорации, а затем снова на ту, что была, в таблице Клиент корпорации новая запись будет уже видна. Я конечно могу программно курсор туда-сюда быстро  передвинуть, но должны же быть цивилизованный методы решения.


 
ЮЮ ©   (2004-07-27 07:39) [1]

Переоткрыть подчиненный запрос
А ещё цивилизованнее, имхо, корректировать отображаемый DataSet, а не какой-то "пишущий датасет", тогда все сразу будет отражаться


 
sniknik ©   (2004-07-27 07:41) [2]

после изменений датасет нужно обновлять (refresh, close/open), когда меняеш запись в мастере на клиентской таблице как раз и происходит переоткрытие.
и это не всегда это помогает, если движок к примеру использует буферизацию записей, а таблицы подключены на разные конекты (тогда даже обновление сработает только после того как буфера физически запишутся на диск).


 
тихий вовочка ©   (2004-07-27 22:24) [3]

Refresh не помогает. А желать Close/Open не хочу - это ж клиент снова все записи с сервера будет сливать. Но ведь в датасете данные уже есть! Потому как, когда я в родительской таблице делаю перемещение курсора туда-обратно, подчиненная таблица отображается уже со всеми изменениями


 
sniknik ©   (2004-07-27 22:51) [4]

из хелпа по Refresh
Note: The Refresh method does not work for all TDataSet descendants. In particular, TQuery components do not support the Refresh method if the query is not “live”. To refresh a static TQuery, close and reopen the dataset.
статик это как раз у тебя (раз он уже есть на клиенте)

> Но ведь в датасете данные уже есть!
а добавленная запись? как же она есть если ты ее в обход этого датасета записал?

> Потому как, когда я в родительской таблице делаю перемещение курсора туда-обратно ...
> когда меняеш запись в мастере на клиентской таблице как раз и происходит переоткрытие.


 
Anatoly Podgoretsky ©   (2004-07-27 23:01) [5]

тихий вовочка ©   (27.07.04 22:24) [3]
Может и есть, вот только устраивает ли она условиям выборки? Это можно узнать только запросив набор по новому с сервера.


 
ЮЮ ©   (2004-07-28 02:17) [6]

>Но ведь в датасете данные уже есть!
Они есть в твоем "пишущем" датасете, а не отображаемом. Добавляй запись непосредственно в отображаемый и не надо будет никакого рефреша, чтобы её увмдеть



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
1-1091560738
g-l-u-k
2004-08-03 23:18
2004.08.22
Как определить каким пакером сжат файл или язык программирования?


1-1091763515
kos
2004-08-06 07:38
2004.08.22
Как конвертировать значение даты в целое число?


3-1090852329
guest_Dmitry
2004-07-26 18:32
2004.08.22
Как избавиться от длительной блокировки записи?


14-1091007987
Gero
2004-07-28 13:46
2004.08.22
Электронные книги


1-1092130305
TUser
2004-08-10 13:31
2004.08.22
raise в потоке