-
> > Попробуйте настроить . 1 ClientDataset -мастер, второй, > соответственно - деталь. Связь - по ключу, стандартно. > вопрос один: а нафига? оно мне зачем? > вопрос два: есть 2 варианта (писал выше) какой из них "стандартно"? >
??? Не понял немного. Что значит зачем? Что бы не вводить доп. признаков для фильтрации подчинённого, мастер итак знает какие детали нужны, да вот только не работает как надо.
-
> мож кто разобрался. с ЧЕМ? проблема возможно у тебя только в голове. где инфа как ТЫ делаешь? какой у тебя запрос в "детали"? в мастере?
-
> > вопрос два: есть 2 варианта (писал выше) какой из них > "стандартно"?
Пользуется IB, связка настраивается в самих ClientDataSet.
-
> с ЧЕМ? проблема возможно у тебя только в голове. где инфа > как ТЫ делаешь? > какой у тебя запрос в "детали"? в мастере?
Вы невнимательно прочитали?
-
> Что значит зачем? зачем, значит, зачем. какой смысл мне делать проект, писать что-то свое чтобы убедится что у не работает у тебя? а если у меня заработает? ну вот давай проверим как будто я сделал, и говорю "все ок сделал стандартно, проблемы нет!". и?
-
> Вы невнимательно прочитали? а ты?
-
> с ЧЕМ? проблема возможно у тебя только в голове. где инфа > как ТЫ делаешь? > какой у тебя запрос в "детали"? в мастере?
ClientDataset -мастер, второй, соответственно - деталь. Связь - по ключу, стандартно. В мастере сделайте выборку, неважно - селект траляля вере то то. И посмотрите. В мастере как положено ваша выборка, ок. А вот в деталях - ВСЕЕЕЕ! (Разумеется отображаться будут только привязанные к мастеру данные, просто отключите связь, да и по размеру выкачанных данных видно будет сразу)
-
> зачем, значит, зачем. какой смысл мне делать проект, писать > что-то свое чтобы убедится что у не работает у тебя? а если > у меня заработает? ну вот давай проверим как будто я сделал, > и говорю "все ок сделал стандартно, проблемы нет!". и?
Согласен, тогда чем же вы помочь хотели? Проблему я уже тут расписал подробнее некуда. Запросы в мастере и деталях не имеют значения, ибо проблема НЕ В НИХ. Проблема, ещё раз, в том, что мастер тянет ВСЕ данные из подчинённой, а не только привязанные по ключу.
-
> В мастере сделайте выборку, неважно - селект траляля вере > то то
Какой может быть селект для уже полученных и находящихся в локальном кеше данных ?
> А вот в деталях - ВСЕЕЕЕ
Значит по каким-то причинам подчиненный CDS у тебя либо
- не получает от главного CDS значение вторичного ключа для фильтрации кешированного НД - не находит/не использует требуемый для фильтрации индекс
-
Два вопроса: 1. Чем вызвано использование именно TClientDataSet, а не, допустим, TADODataSet ? Не есть ли это выдергивание гвоздей из доски сенокосилкой ? 2. Если "глюк" "фильтрации" мастер-детал в кишках VCL, то что мешает организовать правильную подкачку деталей ручками (по AfterScroll например) вместо того чтобы упорно трясти грушу ?
-
> по AfterScroll например
..что есть самое простое решение: получил текущее значение мастер-ключа и тут же отфильтровал подчиненный набор по соответствующему вторичному ключу
-
> > В мастере сделайте выборку, неважно - селект траляля вере > > то то > > > Какой может быть селект для уже полученных и находящихся > в локальном кеше данных ? > > > > А вот в деталях - ВСЕЕЕЕ > > > Значит по каким-то причинам подчиненный CDS у тебя либо > > - не получает от главного CDS значение вторичного ключа > для фильтрации кешированного НД > - не находит/не использует требуемый для фильтрации индекс
1. Селект - это и есть самое первое получение записей в кэш на клиента. С ним проблем нет. Сказал что надо - то и пришло. 2. тут и есть проблема, что он там не получает и почему... связь мастер-деталь работает правильно, просто набор данных в кэш подчинённого заливается ЦЕЛИКОМ, игнорируя все связи...
-
> Два вопроса: > 1. Чем вызвано использование именно TClientDataSet, а не, > допустим, TADODataSet ? Не есть ли это выдергивание гвоздей > из доски сенокосилкой ? > 2. Если "глюк" "фильтрации" мастер-детал в кишках VCL, то > что мешает организовать правильную подкачку деталей ручками > (по AfterScroll например) вместо того чтобы упорно трясти > грушу ? >
1. Не понял смысла. зачем мне АДО, он что, лучше? Проект на IB + FB, устраивает полностью, без привязки к АДО. 2. Отключить связку, закачать детали, включить? Возможно, но думал что стандартными методами есть решение.
-
> что он там не получает и почему
Ну так выясни состав индексов и текущий индекс в подчиненном CDS сразу после позиционирования мастер-CDS на записи, например, в событии AfterScroll ..
-
> ..что есть самое простое решение: получил текущее значение > мастер-ключа и тут же отфильтровал подчиненный набор по > соответствующему вторичному ключу
А не многовато запросов на сервер будет?
-
> Ну так выясни состав индексов и текущий индекс в подчиненном > CDS сразу после позиционирования мастер-CDS на записи, например, > в событии AfterScroll ..
Вы не поняли - всё он правильно позиционирует. Проблема именно при "закачке" данных с сервера. Если кто не работал с ClientDataSet-ом : Провайдер мастера сам формирует необходимый запрос на получение данных с подчинённого, там и настройки все есть. Только пофигу это всё, работает только на вложенных датасетах :-(
-
>VikOss © (28.12.12 12:11) [32] >1. Не понял смысла. зачем мне АДО, он что, лучше? Проект на IB + FB, устраивает полностью, без привязки к АДО.
Бегло прочитал, не обратил внимание на интербэйз. Ну так замените на TIBDataSet/TFIBPlusDataSet
>2. Отключить связку, закачать детали, включить? Возможно, но думал что стандартными методами есть решение.
Оно есть, но у Вас почему-то глючит, очевидно из-за "плавающей" ошибки. Можно долго искать этот глюк, копаясь в особенности реализации связи мастер-детал в VCL например, а можно выкинуть весь этот сбоящий снегоход и просто встать на лыжи. Кстати, а почему Вы работая с FB,игнорите фибплас ?
-
> ну вот давай проверим как будто я сделал, и говорю "все ок сделал стандартно, проблемы нет!". и? ну все, написал пример, проблемы нет. все как предполагал (или не вижу).
> Не понял смысла. зачем мне АДО, он что, лучше? там точно есть 2 стиля мастер детайл про которые писал. не можешь найти у себя/используемых компонентах переходи. раз нужно, лучше не лучше вопрос лишний. раз надо...
> Провайдер мастера сам формирует необходимый запрос на получение данных с подчинённого, там и настройки все есть. ??? а зачем я его пишу? (вопрос в стиле ветки, только к автору ;))
-
> Кстати, а почему Вы работая с FB,игнорите фибплас ?
Дак они ж вроде платные, нет?
-
+ запрос "мастера" SELECT * FROM Reestr WHERE ID < 4726 запрос "детайля" SELECT * FROM ReestrResp WHERE ReestrID = :ReestrID связка ReestrID -> ID, усе Ок.
|