Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление значений полей взятых из присоединенной таблицы


Страницы:   1 2 3

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)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо