"Андрей Могильный" ...
>
>   TSimpleDataSet = class(TCustomClientDataSet)
>   private
>     ...
>     FProvider: TDataSetProvider;

    А вот за это я бы убил проектировщиков - очень много таких "спрятанных"
мест. Вот накуя там private, а не protected ? Чего было прятать этот несчастный
провайдер ? Вся VCL этим грешит, особенно DataSet часть

>   наружу провайдер не высовывается, поэтому выход только такой - делай
> наследника от
> TSimpleDataSet и там перекрывай AllocProvider

    Есть ещё общеизвестный хак

THackSimpleDataSet = class(TCustomClientDataSet)
     ...
     FProvider: TDataSetProvider;
end

    THackSimpleDataSet должен, есс-но, быть скопирован с TSimpleDataSet
вплоть до интересующего члена ( :) )

THackSimpleDataSet(mySimpleDS).FProvider теперь доступен


    Также можно отказаться от TSimpleDataSet и пользовать нормальную
явную связку из 3-х (нет, не пальцев и нет - не букв ;) ) компонент

--
Хорсун Влад


Ответить