Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

Master Detaile с помощью ADOQuery   Найти похожие ветки 

 
jago   (2004-05-20 16:01) [0]

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


 
Соловьев ©   (2004-05-20 17:05) [1]

TADOQuery.DataSource + F1


 
jago   (2004-05-21 08:02) [2]

RTFM по отношению к данной проблеме уже применялся, но не принес ощутимых результатов. Затык произошел на этапе определения TParameter. Как ему передать значение если я использую SQL для определения набора данных?


 
Silver Alex ©   (2004-05-21 09:27) [3]

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


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


>  [2] jago   (21.05.04 08:02)

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

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

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


 
Johnmen ©   (2004-05-21 09:38) [5]

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

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


 
Johnmen ©   (2004-05-21 09:42) [6]

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

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


 
Silver Alex ©   (2004-05-21 09:56) [7]


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

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


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


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

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

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


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


 
Sergey13 ©   (2004-05-21 10:03) [9]

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


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

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

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


 
Silver Alex ©   (2004-05-21 10:32) [11]


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

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


 
Sergey13 ©   (2004-05-21 10:38) [12]

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


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


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

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


 
Sergey13 ©   (2004-05-21 11:06) [14]

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


 
Anatoly Podgoretsky ©   (2004-05-21 11:17) [15]

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


 
Silver Alex ©   (2004-05-21 11:30) [16]

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


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

Мной был уже проделан вами предложенный путь и при открытии 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


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

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


 
Silver Alex ©   (2004-05-21 12:57) [19]


> jago   (21.05.04 12:51) [17]

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


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

так и стоит


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

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.075 c
1-1086015332
Санек
2004-05-31 18:55
2004.06.13
Как использовать системную переменную %TEMP% в пути файла?


14-1085546854
Vlad Oshin
2004-05-26 08:47
2004.06.13
Чем Касперский занимается...


9-1074890287
KEHTABP
2004-01-23 23:38
2004.06.13
SplitScreen в DelphiX


1-1086162497
DmitryMN
2004-06-02 11:48
2004.06.13
Контротлная сумма


14-1085777995
miwa
2004-05-29 00:59
2004.06.13
Robert Miles - Children





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский