Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
11-1079329884
Ал
2004-03-15 08:51
2004.08.22
KOLRichEdit


4-1089304564
Боян Георгиев
2004-07-08 20:36
2004.08.22
Key logging


3-1090850411
Manfred
2004-07-26 18:00
2004.08.22
AccessViolation при закрытии клиента


6-1087536809
leonidus
2004-06-18 09:33
2004.08.22
Щелчки в TWebBrowser`е


14-1091463326
Cerberus
2004-08-02 20:15
2004.08.22
Linux под Win





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский