Главная страница
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.025 c
1-1091863065
Миха
2004-08-07 11:17
2004.08.22
Открыть файл с CD-ROMa (read-only)


4-1089629598
Alexiy
2004-07-12 14:53
2004.08.22
Корявая GetOpenFileName


1-1092090365
mouse_web
2004-08-10 02:26
2004.08.22
Заставка перед загрузкой программы


6-1087211397
Ivan K
2004-06-14 15:09
2004.08.22
Recv и синхронный режим


14-1091454307
Piter
2004-08-02 17:45
2004.08.22
Кто-нибудь может выделить бесплатно место под страничку?