Базы данных - Cache - статьи


Взаимодействие СУБД Caché c внешним миром - часть 5


Рассмотрим простейший пример использования классов Caché из C ++

d_ref <Sample_Person> p1 = Sample_Person::openid(&db, L"1"); p1->setDOB(1970,2,1); Листинг 2

C ++-библиотека, поставляемая вместе с Caché, содержит шаблонный класс d _ ref <>, инкапсулирующий логику обращения к промежуточным классам и реализованный по концепции smart pointer, что позволяет вызывать методы промежуточных классов через “->” синтаксис, копировать d _ ref <> таким образом, что два экземпляра будут указывать на один объект, передавать экземпляр d _ ref <> в промежуточный метод «по ссылке» и т.п.

Все рассмотренные выше способы доступа были ориентированы на обращение к Caché извне. Однако, нередко встречаются ситуации, когда на основе данных, хранящихся в Caché необходимо сформировать отчет в привычной табличке Excel, сгенерировать документ в формате Word, PDF или сделать еще какое-нибудь действие, связанное с обращением к COM-объектам. В этом случае может оказаться полезным специальный механизм Caché Activate , позволяющий взаимодействовать с ActiveX -компонентами как с обычными объектами Caché. Методика использования Caché Activate очень проста: с помощью Caché Activate Wizard для конкретного COM-компонента создается специальный клас c (таких классов может быть несколько), экземпляр которого затем используется в приложении для доступа к соответствующему компоненту.

Рассмотрим пример использования компонента Microsoft SysInfo Control. В первую очередь воспользуемся Caché Activate Wizard для создания «обертки» вокруг ActiveX -компоненты.

Рисунок 3

После того, как специальные классы созданы, появляется возможность использования компоненты SysInfo в приложениях Caché. К примеру, следующий код получает системную информацию о состоянии батареи на ноутбуке.

Set obj = ##Class(Activate.SysInfoLib.SysInfo).%New() Write !,obj.BatteryLifePercent Write !,obj.BatteryLifeTime Листинг 3




- Начало -  - Назад -  - Вперед -