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

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

Master Detaile с помощью ADOQuery [D7]


Страницы:   1 2

jago ©   (2004-05-20 16:01:00) 

на форме лежат ADOQuery, на них смотрят 2 грида. Как правильно настроить возможность перемещения по первому гриду, так чтобы дочерний (2 грид) отображал значения в зависимости от набора полей главного грида.
Оба ADOQuery выводят набор по нескольким таблицам


jago   (2004-05-21 13:37:00) [1]

вот ведь у меня в новом проекте тоже все нормально работает. Спасибо всем ответившим, буду искать глюки по всему тексту


Соловьев   (2004-05-21 13:06:00) [2]

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


jago   (2004-05-21 13:01:00) [3]

так и стоит


Silver Alex   (2004-05-21 12:57:00) [4]


> jago   (21.05.04 12:51) [17]

покажи где и как подставляешь параметры


Соловьев   (2004-05-21 12:57:00) [5]

TADOQuery.Parameters - в дизайне есть что-то? выставь типы и значения по умолчанию - NULL


jago   (2004-05-21 12:51:00) [6]

Мной был уже проделан вами предложенный путь и при открытии Dataset выдается ошибка: Не правильно определен объект Parameter. Предоставлены несовместимые или не полные сведения.Вот мой SQL
SELECT dc.*, dd.*
FROM dir_classes dc, drcl_drsc dd
WHERE
dc.DRCL_ID = dd.DRCL_DRCL_ID
dd.DRSC_DRSC_ID= :DRSC_ID
а вот так выглядит Master Dataset
SELECT
ds.DRSC_ID,
name
FROM dir_sch ds


Silver Alex   (2004-05-21 11:30:00) [7]

Таймер у меня там, таймер.Только нет у меня никаких претензий. Чего вы тут накинулись


Anatoly Podgoretsky   (2004-05-21 11:17:00) [8]

Sergey13 ©   (21.05.04 11:06) [14]
Необязательно, сушествуют и другие приемы, но у него наверно таймер и тогда его претензии неуместны.


Sergey13   (2004-05-21 11:06:00) [9]

2Silver Alex ©   (21.05.04 10:52) [13]
Какой юмор? Я так предполагаю, что твой "компонет" делает примерно тоже самое.


Silver Alex   (2004-05-21 10:52:00) [10]


> Sergey13 ©   (21.05.04 10:38) [12]

молодец, ценю чувство юмора :)


Sergey13   (2004-05-21 10:38:00) [11]

2Silver Alex ©   (21.05.04 10:32) [11]
>Если ты знаешь чего с этим таймером делать, тогда Бог в помощь
Выставлять задержку, например 250 миллисек. 8-)


Silver Alex   (2004-05-21 10:32:00) [12]


> Sergey13 ©   (21.05.04 10:03) [9]

какой таймер?TTimer что ли?Ты вообще про что?Или сработал стадный инстинкт?Все бросаются и я тоже ломанусь.Если ты знаешь чего с этим таймером делать, тогда Бог в помощь


Johnmen   (2004-05-21 10:28:00) [13]

>Silver Alex ©   (21.05.04 09:56) [7]

Так мы не про задержку. С ней все приемы уже известны.
Мы про используемый обработчик.


Sergey13   (2004-05-21 10:03:00) [14]

2Silver Alex ©   (21.05.04 09:56) [7]
>я же написал что есть у меня компонент
Таймер у всех есть по умолчанию. Подумаешь - компонент. 8-)


Соловьев   (2004-05-21 10:00:00) [15]


> Ну а теперь подумайте ,господа программеры, и скажите чем
> этот метод хуже.

что-то подобное реализовано в FIBPlus - там тоже открывается подчененная таблица, только после того как мастер закончил скроллирование. Если ты сам написал такую компоненту - прими мои поздравления. Это классно.

> А на счет OnAfterScroll, можно и так но не думаю что это
> лучший метод


> [6] Johnmen ©   (21.05.04 09:42)


Silver Alex   (2004-05-21 09:56:00) [16]


> Соловьев ©   (21.05.04 09:38) [4] and Johnmen ©   (21.05.04 09:42) [6]

вы ,ребята, невнимательно читаете, я же написал что есть у меня компонент и работает все нормально ,даже более.Обьясню в чем преимущество.Выставляется задержка, например 250 миллисек. вот и бежишь по датасету.За эти 250 мс пробежал четыре записи, а рефреш произошел только один раз.Ну а теперь подумайте ,господа программеры, и скажите чем этот метод хуже. А на счет OnAfterScroll, можно и так но не думаю что это лучший метод


Johnmen   (2004-05-21 09:42:00) [17]

>Silver Alex ©   (21.05.04 09:27) [3]
>я например на обработчик OnDataChange

Возникает при ЛЮБОМ изменении значений полей в буфере текущей записи. Не только при прокрутке, но и при модификации.
Поэтому корректней Соловьев ©   (21.05.04 09:38) [4]


Johnmen   (2004-05-21 09:38:00) [18]

>Как ему передать значение если я использую SQL для определения
>набора данных?

Через параметр. Типа ... WHERE FieldFK=:FieldID для дочернего запроса, где FieldID имя поля из мастерного НД (из первого в твоем случае).


Соловьев   (2004-05-21 09:38:00) [19]


>  [2] jago   (21.05.04 08:02)

имя параметра запроса набора данных детайла должно соответсвовать имени ключевого поля мастера.

> [3] Silver Alex ©   (21.05.04 09:27)

мой вариант не требует никаких строчек кода :) и работает не хуже:)
Кстати, надо использовать не OnDataChange, а OnAfterScroll


Silver Alex   (2004-05-21 09:27:00) [20]

я например на обработчик OnDataChange главного DataSource переоткрываю DataSet детализации.Ну и в обработчике события OnBeforeOpen DataSetа детализации подставляю нужные параметры, которые естественно берутся из главного DataSetа.И есть у меня компонент производный от DataSource, в котором событие OnDataChange происхоидт с нужной задержкой, т.е. когда по гриду бежишь не рефрешаться все записи, а происходит все более корректно.Ну если подойдет тебе этот метод пиши, вышлю чего нужно


Страницы:   1 2

Наверх

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