17 / 17 / 0
Регистрация: 19.02.2012
Сообщений: 68
1

OleVariant и передача объекта. (Delphi)

11.07.2012, 18:01. Показов 3600. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Пришла мысль создать некий диспетчер доступа к БД. Суть: иметь один интерфейс для доступа к БД с использованием различных компонентов доступа к БД (IB, ADO, Zeos и т.д.)
Идея прикольная, с учетом того. что если захотелось быстренько заменить компоненты доступа, то это получится крайне безболезненно.
Есть COM сервер, который реализует интерфейс IDataSetDispatch.
Есть клиент, на котором куча компонентов для отображения данных, которые работают с TDataSet. Для совместимости, необходимо чтобы IDataSetDispatch возвращал объект типа TDataSet (скорее всего как свойство). Не до конца ознакомившись с особенностями OLE, я наивно полагал что смогу передать объект (который легко кастуется в TDataSet) через OleVariant, кастануть его в TDataSet на клиенте и присвоить всем гридам для отображения данных. Но не тут то было... Через OLEVariant нельзя передавать типы не совместимые с OLE. Так что с TDataSet облом...
Как быть в этой ситуации? Идея кажется хорошей, хотелось бы довести до конца.

Добавлено через 9 минут
Мне тут советуют для моего случая отказаться от использования OLE... И посмотреть в сторону простых dll c RTTI.
Но это говорил человек который не сильно плотно общался с этой технологией. Может есть способы все же реализоваться с помощью OLE.
(в принципе мне разницы нет, просто появилась возможность поковыряться в OLE...).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2012, 18:01
Ответы с готовыми решениями:

OleVariant delphi
var js:OleVariant; java: string; begin js:=CreateOleObject('ScriptControl');...

Передача объекта из одного экземпляра класса в другой с запретом обращаться к методам и свойствам этого объекта
Всем привет! Есть класс, в котором используется объект (MyObject, объявленный в private). При...

olevariant
как с помощью olevariant отправить строку в приложение? пробовал так: var WsShell:...

Проверка статуса olevariant
строю парсер для магазина. сделал модуль, который тянет информацию о характеристиках товара с...

2
4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
12.07.2012, 09:10 2
Объект - это указатель, вот и передавай его как pointer.

Добавлено через 46 минут
Даже кастовать не надо. Такое компилируется без ошибок
Delphi
1
2
3
4
5
6
var
  s: TDataSet;
  p: pointer;
begin
  p:=s;
end;
0
17 / 17 / 0
Регистрация: 19.02.2012
Сообщений: 68
12.07.2012, 09:51  [ТС] 3
Упс... А слона то я и не заметил...
Спасибо, за подсказку
0
12.07.2012, 09:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2012, 09:51
Помогаю со студенческими работами здесь

В чем отличие Variant от OLEVariant?
В чем отличие Variant от OLEVariant? Добавлено через 10 минут ну кроме того что olevariant...

Передача объекта методу другого объекта другого класса
Всем привет. Есть у меня класс test1, который имеет конструкторы только с параметрами. Другой...

Проблема вызова функции из DLL с типом OLEVariant
Имеется ActiveX Dll написанный на Дельфи. Никак не получается вызвать функцию с таким описанием...

Передача id объекта
Доброго дня всем. Пишу небольшое приложение для статистики боксерских боев и возник вопрос....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru