Взаимодействие с Лоцман:PLM

Автор dosart, 27.02.20, 13:51:08

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

dosart

Здравствуйте.
Есть приложение, написанное на с++. Оно взаимодействует с Лоцман:PLM через класс MainSystem. Класс объявлен в файле LoodsmanAppServerMain.tlb.
Приложение успешно подключается к серверу Лоцман:PLM. Получает список БД, и подключается к одной из них.
Приложение пытается получить список проектов, через API функцию GetProjectListEx. Функция возвращает объект типа _variant_t. Как получить данные из этого объекта?

_variant_t result = loodsman->GetProjectEx(1, &ecode, &emsg);

Chipollino

По умолчанию возвращается TClientDataSet и можно как-то привести его к более привычному IDataSet, но для меня проще изменить формат выходных данных на xml и в качестве результата будет возвращаться строка содержащая xml представление этого датасета:

Цитата: undefinedSetFormat
--------------------------------------------------------------------------------
Устанавливает текущий формат возврата наборов данных.
По умолчанию используется внутренний двоичный формат компонента TClientDataSet (Delphi).
Описание
Цитата: undefinedHResult SetFormat(
BSTR stFormat,        // формат
Variant * inReturnCode,        // код возврата
Variant * stErrorMessage,        // сообщение об ошибке
);

Параметры
stFormat [in] Требуемый формат. Если stFormat='xml', то наборы данных будут возвращаться в формате XML.
inReturnCode [out] Код возврата. Если 0, то метод отработал без ошибок.
stErrorMessage [out] Сообщение об ошибке. Инициализировано при условии, что inReturnCode <> 0.

Примечание
Чтобы  вернуть текущий формат к двоичному виду, нужно передать stFormat<>'xml'.

Поддерживается в версии
ЛОЦМАН:PLM 6.0 или более поздние.