![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление значений полей взятых из присоединенной таблицы
Kostafey © (2007-04-17 18:54:00)В продолжение темы http://www.delphimaster.ru/cgi-bin/forum.pl?n=1&id=1173792940
Итак, есть набор даных (ADODataSet, СУБД Access), построенный как
select * from
(
(
Meropr
left join TipMeropr on TipMeropr.TMer_id = Meropr.Mer_TMer_id
)
left join Valute on Valute.V_id = Meropr.Mer_V_id
)
left join Location on Location.L_id = Meropr.Mer_L_id
значения свойств
ADODataSetMeropr.Properties['Unique Table'].Value := 'Meropr';
ADODataSetMeropr.Properties['Resync Command'].Value := '...'
ADODataSetMeropr.Properties['Update Resync'].Value := adResyncAll;
соответствующим образом введены.
Проблема в том, что при изменении, например Meropr.Mer_TMer_id
значения других полей взятых из таблицы TipMeropr будут обновлены
только после выполнения Post.
Можно ли это каким-либо образом сделать до выполнения Post ?
Kostafey (2007-04-21 00:40:00) [41]> Прочитал 2 (два) раза. Ничего не понял.
Постараюсь выражаться яснее.
Набор данных (ADODataSet) построен на основе объединения нескольких таблиц.
Нужно этот НД редактировать (Insert, Edit, etc).
В статье http://delphikingdom.ru/asp/viewitem.asp?catalogid=420
рассказывается как редактировать НД построенных на нескольких таблицах.
Но обновление данных в визуальных компонентах (DBGrid, DBEdit, и тд.) в случае если
мы меняем значения внешних ключей таблицы (указанной в 'Unique Table') происходит только
выполнения Post этого набора данных.
Я бы хотел иметь возможность видеть изменения до сохранения.
Johnmen (2007-04-21 00:28:00) [42]Прочитал 2 (два) раза. Ничего не понял.
Kostafey (2007-04-20 23:52:00) [43]Все же конструктивной критики хотелось бы услышать.
Kostafey (2007-04-17 19:38:00) [44]Вообще, проблему решил, но не очень красиво.
В момент изменения Meropr.Mer_TMer_id я отключал свойство
DataSource:=nil того TDBEdit, который должен отображать
поле данных таблицы TipMeropr, после чего его свойству
Text присавивается требуемое знаечение поля.
Зырытие формы редактирования происходит вместе с Post или Cancel.
При каждом отобажении формы (FormShow) значения DataSource
всех TDBEdit-ов и прочих контролов восстанавливаются.
Не слишком примитивно?