Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизОбновление Найти похожие ветки
← →
тихий вовочка © (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c