![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование сложных типов данных в XML Web Services? Как? [D6, Win2k]
IInvokable © (2003-01-05 17:36:00)Детские примеры Веб-сервисов с простейшими типами данных Integer, string и т.д. работают нормально. К детским я отношу примеры написания Веб-сервиса типа "конверталка рублей в доллары и обратно", однако возникает вполне законный и мотивированный вопрос: как написать на D6 веб-сервис, с методами, принимающими в качестве параметров сложные типы данных и возвращающих сложнотипизированные результаты? Живой пример: у меня в интранете есть сервис - "Директория внутренних телефонов сотрудников компании". Он реализован как клиент/серверное приложение, общающийся через порт, например 5289. Ессно, доступ в интранет извне закрыт фаерволом. Я хочу написать веб-сервис, который работает под корпоративным веб-сервером и принимает запросы типа (буду использовать псевдоязык):
functionGetEmployeeInfoByLastname( кусок фамилии сотрудника): сложная структура информации о сотруднике;
Сервер должен кьюерить SQL-сервер командой типа
SELECTEmpID, EmpLocalPhone, EmpPosition FROMEmployees WHEREEmpLastname LIKE"Пет%"
Естественно, такой запрос может возвратить более одной записи (Петров, Петренко, Петухов). Все это на стороне сервера я хочу запихнуть в
typeTEmpInfo = record
eid: Integer;
eLPhone: string;
ePos: string;
end;
...и отдать этот сложный DataSet обратно клиенту в SOAP-сообщении.
ВОПРОС: Как мне это реализовать?
Порождение собственных типов от класса TRemotable у меня не получается. Может я что не так делаю? В D6 \Demos\WebServices есть пара примеров, но они все завязаны на InterBase, которую я в принципе не использую.
Заранее благодарен за ответы.
Mike_Goblin (2003-01-05 18:05:00) [1]Для начала прочесть в help раздел
Using complex types in invokable interfaces
потом все же разобраться с примерами