TpFIBDataSet через интерфейсы

ёёёёё
Дата: 31.10.2019 16:54:52
Не делал ли кто свой TDataSet через интерфейс - адаптер? Хост - приложение по запросу генерирует датасет : TpFIBDataSet, передает интерфейс к нему - например, в DLL.
А в DLL - класс - оболочка (наследник TDataSet) над интерфейсом, а дальше - TDataSource, к ней - гриды и прочие ништяки.

Может, у кого готовый есть? :)
Гаджимурадов Рустам
Дата: 31.10.2019 16:58:34
ёёёёё> Не делал ли кто свой TDataSet через интерфейс - адаптер?
ёёёёё> TpFIBDataSet, передает интерфейс к нему - например, в DLL.

Лично я даже не понял, что ты пытаешься получить/спросить. :)

Чтобы DLL на другом ЯП была или что?

Posted via ActualForum NNTP Server 1.5

ёёёёё
Дата: 31.10.2019 17:01:07
Гаджимурадов Рустам,

чтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетов.
ёёёёё
Дата: 31.10.2019 17:02:06
Гаджимурадов Рустам
...
Лично я даже не понял, что ты пытаешься получить/спросить. :)
...

Это возмутительно. Снова все самому делать придется, йоу.
Кроик Семён
Дата: 31.10.2019 17:12:00
ёёёёё,

Делайте через Callback - функции:


Добавьте в DLL процедуру для инициализации т.н. интерфейса, параметрами которой (или компактно, через поля packed record) передавайте в DLL адреса функций из EXE.
Далее когда в DLL возникнет надобность в чем-либо из EXE, она вызовет соответствующую функцию (т.к. адрес имеется благодаря процедуре из предыдущего пункта).
_Vasilisk_
Дата: 31.10.2019 17:20:36
ёёёёё
чтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетов.
Нужно писать наследника от TDataSet для которого источником данных будет некий интерфейс. Задача геморройная, но реализуемая.

А может просто передать в dll сам TDataSet? Без всяких интерфейсов
ёёёёё
Дата: 31.10.2019 17:24:02
Кроик Семён,

это несущественно, как получать. У меня в dll масса таких объектов ч/з интерфейсы из хоста юзаются, проблем нет.
Вопрос именно в самой реализации адаптеров.
ёёёёё
Дата: 31.10.2019 17:30:45
_Vasilisk_
ёёёёё
чтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетов.
Нужно писать наследника от TDataSet для которого источником данных будет некий интерфейс. Задача геморройная, но реализуемая.

А может просто передать в dll сам TDataSet? Без всяких интерфейсов

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

Да, когда-то передавал сам датасет (и другие реальные объекты), пока предсказуемо не нарвался.
ёёёёё
Дата: 31.10.2019 17:35:02
Кроик Семён
ёёёёё,
...передавайте в DLL адреса функций из EXE.
...

Это же и есть интерфейс... :)
ёёёёё
Дата: 31.10.2019 17:40:05
...а может, сразу TDataSource передавать? Все равно db-аware компоненты его хотят.