![]() |
| ||
|
|
Новости |
Поиск |
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 ?
(2007-06-11 23:34:00) [1]Удалено модератором
(2007-06-11 23:34:00) [2]Удалено модератором
(2007-06-03 11:13:00) [3]Удалено модератором
(2007-06-01 22:33:00) [4]Удалено модератором
(2007-06-01 22:32:00) [5]Удалено модератором
Kostafey (2007-04-23 03:33:00) [6]> [38] MsGuns © (22.04.07 22:19)
В таком случае посмотрите на [0] и [1], а лучше сразу на [11].
В них и сформулирован вопрос который я уже до сих пор не решил,
т.е. решил, но не очень красиво.
Был бы очень признателен за Ваши советы по этому вопросу.
MsGuns (2007-04-22 22:19:00) [7]Я уже давно не использую всякие лукапы. Только в формах редактирования и не в гридах.
Kostafey (2007-04-22 20:46:00) [8]> [36] MsGuns © (22.04.07 20:29)
От ударов головой пострадал стол и еще несколько предметов мебели.
> Для акцеса такое может прокатить :
> INSERT INTO TABLE
> SELECT MAX(ID)
Вообще, спасибо, весьма познавательно. Но вопрос не в этом.
В чем же вопрос? А собственно в чем?
<На столе появилось еще пару вмятин>
Вам не доводилось пользоваться TDBLookupText.
Замечательная штука, только не работает. Для Delphi4 была написана.
У меня Delphi7 скоимпилировал, пробую использовать,
все значения свойств настроил, а он, зараза, ничего не показывает. :(
В исходнике его чтоль покопаться? Вроде не очень большой...
MsGuns (2007-04-22 20:29:00) [9]Вставку в справочник выполнять запросом, сразу после инсерта вытаскивая идентификатор.
Для акцеса такое может прокатить :
INSERT INTO TABLE
SELECT MAX(ID)
А вообще-то @@Identity
Kostafey (2007-04-22 19:24:00) [10]> [34] MsGuns © (22.04.07 19:14)
Трижды ударился головой в шкаф, проверил целостность шкафа.
> DBLookUpComboBox не предназначен для ВСТАВКИ в справочник
> новых значений
Да мне этот хр..., долб..., недо..., короче, DBLookUpComboBox не нужен,
не использую я его.
> МОДАЛЬНУЮ форму через обычную сетку и давать выбирать или
> добавлять именно в ней.
Всю ветку объясняю что именно так я и сделал.
Вопрос то в том как после этого изменения увидеть до выполнения Post.
Нашел компонент TDBLookupText, но он какой-то древний не компилируется стандартно.
Как выполнить процедуру Register компонента ?
MsGuns (2007-04-22 19:14:00) [11]DBLookUpComboBox не предназначен для ВСТАВКИ в справочник новых значений. Если надо добавлять/корректировать справочник "по ходу", следует вынести его на отдельную, МОДАЛЬНУЮ форму через обычную сетку и давать выбирать или добавлять именно в ней.
Все остальное от лукавого ;)
Kostafey (2007-04-22 16:35:00) [12]> Ну так отфильтруй. В чём здесь-то проблема?
Хм. не совсем правильно выразился.
Мне вообще не нужно чтобы отображался какой-либо список,
ни кнопка для открытия этого списка, толькотекущее значение.
Johnmen (2007-04-22 16:29:00) [13]
> Ну так во про то и речь, что
> Мне не нужно иметь список всех записей из ListSource.
Ну так отфильтруй. В чём здесь-то проблема?
Kostafey (2007-04-22 16:26:00) [14]> Table1.id
> Table1.Dogovor
> Table1.FK_Table2_id
> Table2.Familiya
Это просто пример, но суть он отражает.
> я бы так не делал, т.к. это все таки редактируемый нд
На то есть статья http://delphikingdom.ru/asp/viewitem.asp?catalogid=420
> тут надо связями пользоваться
Имеете в виду поля с внешними ключами? А куда ж без них.
> ps: это ничего, что вклинился в ваш разговор ? :)
:))
Kostafey (2007-04-22 16:21:00) [15]> Да как угодно! Через не раз упомянутый DBLookupcombobox,
> например...
Ну так во про то и речь, что
> Мне не нужно иметь список всех записей из ListSource.
А вот как раз сейчас ищу DBLookupEdit.
Говорят в RxLib есть такой.
logic (2007-04-22 16:18:00) [16]у вас наверное всетаки проблемма тут
Table1.id
Table1.Dogovor
Table1.FK_Table2_id
Table2.Familiya
я бы так не делал, т.к. это все таки редактируемый нд
тут надо связями пользоваться
ps: это ничего, что вклинился в ваш разговор ? :)
Johnmen (2007-04-22 16:15:00) [17]
> Вопрос в том как до выполнения Post основного НД увидеть
> поля, которые берутся из справочного НД.
????
Да как угодно! Через не раз упомянутый DBLookupcombobox, например...
Kostafey (2007-04-22 15:56:00) [18]> [26] Johnmen © (22.04.07 15:51)
Нет, не совсем так.
В справочной таблице как раз вставка-то (Post) выполняется. Или выбирается уже существующее значение.
Вопрос в том как до выполнения Post основного НД увидеть поля, которые берутся из справочного НД.
Johnmen (2007-04-22 15:51:00) [19]В таком случае, не вставив новую запись в таблицу справочника, невозможно узнать её идентификатор, используемый для ссылок из др.таблиц. А это значит, что не только Post б.д. выполнен, но и запись РЕАЛЬНО вставлена. После чего получен идентификатор. И уже он прописан в редактируемый НД.
Отступлений от этой схемы не существует.
Kostafey (2007-04-22 15:31:00) [20]> Тогда ещё один вопрос - как организован справочник в плане
> уникального ключа?
Обычное автоинкрементное поле (СУБД Access)