powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TpFIBDataSet через интерфейсы
25 сообщений из 30, страница 1 из 2
TpFIBDataSet через интерфейсы
    #39883763
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не делал ли кто свой TDataSet через интерфейс - адаптер? Хост - приложение по запросу генерирует датасет : TpFIBDataSet, передает интерфейс к нему - например, в DLL.
А в DLL - класс - оболочка (наследник TDataSet) над интерфейсом, а дальше - TDataSource, к ней - гриды и прочие ништяки.

Может, у кого готовый есть? :)
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883767
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё> Не делал ли кто свой TDataSet через интерфейс - адаптер?
ёёёёё> TpFIBDataSet, передает интерфейс к нему - например, в DLL.

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

Чтобы DLL на другом ЯП была или что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883769
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

чтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетов.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883770
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам...
Лично я даже не понял, что ты пытаешься получить/спросить. :)
...

Это возмутительно. Снова все самому делать придется, йоу.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883782
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

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


Добавьте в DLL процедуру для инициализации т.н. интерфейса, параметрами которой (или компактно, через поля packed record) передавайте в DLL адреса функций из EXE.
Далее когда в DLL возникнет надобность в чем-либо из EXE, она вызовет соответствующую функцию (т.к. адрес имеется благодаря процедуре из предыдущего пункта).
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883788
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёчтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетов.Нужно писать наследника от TDataSet для которого источником данных будет некий интерфейс. Задача геморройная, но реализуемая.

А может просто передать в dll сам TDataSet? Без всяких интерфейсов
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883792
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

это несущественно, как получать. У меня в dll масса таких объектов ч/з интерфейсы из хоста юзаются, проблем нет.
Вопрос именно в самой реализации адаптеров.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883800
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_ёёёёёчтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетов.Нужно писать наследника от TDataSet для которого источником данных будет некий интерфейс. Задача геморройная, но реализуемая.

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

Да, когда-то передавал сам датасет (и другие реальные объекты), пока предсказуемо не нарвался.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883804
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён ёёёёё,
...передавайте в DLL адреса функций из EXE.
...
Это же и есть интерфейс... :)
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883809
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...а может, сразу TDataSource передавать? Все равно db-аware компоненты его хотят.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883818
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.10.2019 17:40, ёёёёё пишет:
> Автор: ёёёёё. ...а может, сразу TDataSource передавать? Все равно db-аware компоненты
> его хотят.

а может Мидас?
усё на интерфейсах же.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883819
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё...а может, сразу TDataSource передавать? Все равно db-аware компоненты его хотят.
Фу, ну что за дичь. Домой пора.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883822
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

не, страшно.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883824
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сумбурная мысль:

если все части написаны на Delphi, да еще и одной версии (и DLL-ки, и EXE-шник), то теоретически можно было бы заменить DLL-ки на BPL-ки и передавать Dataset-ы/DataSource-ы в чистом виде
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883828
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё> пока предсказуемо не нарвался.

На что именно нарвался-то?

P.S. Подожди vavan-a, он как раз такое делал IIRC.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883834
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёчтобы датасеты физически жили в EXE, а были доступны в DLL. Доступны в виде датасетовтак если длл тоже на дельфе то может лучше пакадж и тогда вообще все что угодно из хоста можно юзать как родное в плагине и наоборот
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883838
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan,

не, поздно.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883842
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё, непонятно почему, это ж ведь фактически тож самое только с удобствами
я когда-то для хоста на дельфе писал пакаджи в частности и в стройке
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883852
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan,

потому что все уже 20 лет работает и имеет дикие размеры. :)
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883868
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Тогда какой вообще смысл сейчас все это трогать?

- Доктор, я жить буду?
- А смысл??
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883892
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F,

а кто трогает? Дописать, добавить в систему плагинов новые интерфейсы.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883894
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё> а кто трогает?

А сейчас данные/датасеты как передаются?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883896
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

еще одна идея:

я на эту тему только интересовался, реального опыта нет. Короче, есть такая технология DataSnap . Я её понимаю применительно к вашей задаче как проброс датасета через удаленное соединение. Там всё через TCP/IP на самом деле, но может и есть трюк, чтобы внутри процесса оно через какое-нибудь подобие хэндла работало. Если нет, то тогда TCP/IP-соедниние между EXE и DLL.
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883898
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.

+ и еще одна идея: некоторые библиотеки доступа к БД позволяют расшаривать Connection. Это даст вам возможность в DLL-ке создавать Dataset, подключенный к Connection из EXE-шника.

Share ADO - Connection
...
Рейтинг: 0 / 0
TpFIBDataSet через интерфейсы
    #39883901
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамёёёёё> а кто трогает?

А сейчас данные/датасеты как передаются?

Передаются "не-датасеты". Например, запросы.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var
  fQ : ICommonQuery;
begin
  fQ :=  ConnectModule.GetNewQuery(trkRead); // Обращение к интерфейсу хоста IConnectModule: "дай объект запрос, работающий в контексте транзакции trkRead".
  fQ.SelectSQL := 'select a, b from c where d = :d';
  fQ.Prepare;
  fQ.ParamByName['d'].AsInteger := 123;
  fQ.ExecQuery;
  while not fQ.Eof do begin
    a := fQ.FN('a').AsString;
...
    fQ.Next
...


Но интерфейс ICommonQuery - не реализует функциональность датасета. TDBGrid или TDBEdit на него не повесишь, то есть.
Если уж сильно припекает - то заливаю все в TClientDataSet, но тут ни о каком постраничном фетче речи быть не может, все заливается сразу и т.п. и вообще TClientDataSet - фу.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TpFIBDataSet через интерфейсы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]