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

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

Current Update [D7, dBase, FoxPro]


Creative ©   (2007-02-01 09:59:00) 

У меня есть две таблицы: в первой описаны некие объекты, во второй описаны подробные характеристики каждого объекта. Как сделать так, чтобы, когда я бегаю по строкам первой таблицы, с объекта на объект, вторая таблица автоматом обновлялась, показывая информацию о текущем объекте? В Access`е это называлось Current Update.


evvcom   (2007-02-02 10:46:00) [1]

> [6] Creative   (02.02.07 10:09)
> все звучит несколько сомнительно - по педыдущему опыту мне
> кажется

Он у тебя настолько огромен, что твой вопрос в "начинающим"?

>       // на главной форме, которая родительская к пролистываемому
> списку - есть
>       // поле-линк, которое перезаписывается каждый раз,
> когда происходит переход
>       // строки в этом списке.

Это поле лишнее.

> Поэтому я и говорю - никаких связей.

Оно, конечно, можно все самому переписать. Но какой смысл? Это все уже реализовано в стандартных компонентах.

> Может я что-то не так понимаю?

Очень может быть.


Creative   (2007-02-02 10:09:00) [2]

Сейчас пойду пробовать, но смысл в том, что это все звучит несколько сомнительно - по педыдущему опыту мне кажется, что мне не нужны никакие связи.

У меня есть (во всех базах, всегда) спецпроцедура, состоящая из ДВУХ частей:

Private Sub Form_Current()

// Первая часть:

   Parent.LinkID = ID
   // или, если не прямой потомок, ее аналог:
   // Forms.Main.LinkID=ID

       // на главной форме, которая родительская к пролистываемому списку - есть
       // поле-линк, которое перезаписывается каждый раз, когда происходит переход
       // строки в этом списке.

// Вторая часть:

   Parent.Child_1.Requery
   Parent.Child_2.Requery
   Parent.Child_3.Requery

       // и так далее, обновляются все зависящие от этого линка субформы.
       // и никаких мастер-филдов и прочего. Потому что этих LinkID на главной
       // форме бывает до шести штук (три линка, три фильтра), и тот, кто кому-то
       // слейв - кому-то другому - уже сам мастер.
       // Поэтому я и говорю - никаких связей.

End Sub

Может я что-то не так понимаю?


Sergey13   (2007-02-01 10:46:00) [3]

По разному можно. Посмотри например про свойство DataSource твоего детального датасета. Или пиши свой обработчик на AfterScroll мастера.
А вообще - Ф1 и ищи про Master-detail relationships


Виталий Панасенко   (2007-02-01 10:44:00) [4]

у дельного объекта НД есть св-во - MasterSource, MasterField(или их аналоги)


ЮЮ   (2007-02-01 10:44:00) [5]

В Query, выбирающей Детали, пишется параметрический запрос с
WHERE <поле связи с мастер-таблицей> = :<имя поля в мастер-DataSet-е>,

и в качестве Query.DataSource указывается DataSource мастер-DataSet-а


Creative   (2007-02-01 10:12:00) [6]


> Везде это называется мастер-детальной связью.


не спорю. но как она осуществляется?


Sergey13   (2007-02-01 10:00:00) [7]

> [0] Creative   (01.02.07 09:59)

Везде это называется мастер-детальной связью.


Наверх

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