Клиент на Delphi к Web-сервису на C#

Регистрация на сайте
GRATIS форум > Компьютер
Sinferno
Всем доброго времени суток.
Проблема с взаимодействием клиента на Delphi с web-службой, написанной на с#. Служба обращается к базе на MS SQL-сервере.
Сгенерировал pas с интерфейсом к web-методам и функцией получения этого интерфейса (GetWebServiceSoap).
Бросил на форму THTTPRio.
Вызываю web-методы так:
R:=(RIO as WebServiceSoap).GetDeviceId(271); // GetDeviceId - как вы догадались, web-метод
или так:
GetWebServiceSoap(false, '', RIO).GetDeviceId(271);
В OnAfterExecute компонента проверяю SOAPResponse.
Но для набора данных возвращается только xml-схема, а для простых данных - значение, которое методы возвращают, когда не могут подключиться к базе, или запрос ничего не возвращает.
В базе точно есть данные и другие программы на с# успешно дёргают эти же методы.
Объясните, плж. что я делаю не так. Такое впечатление, что база не дает службе подключиться, если службу запрашивает delphi-клиент.
Самое удивительное, что когда служба и база находились в локальной сети, но сервер со службой смотрел в internet, то через internet данные удавалось получить.
jk3
Sinferno
Ну ты, блин, и вопросы задаешь blink.gif

Хз в чём проблема, может Холидей подскажет...
Sinferno
jk3, это был акт отчаяния, задавал везде. Но сегодня подсказали решение. Надо было в секцию инициализации добавить строчку:
CODE
InvRegistry.RegisterInvokeOptions(TypeInfo(WebServiceSoap), ioDocument);
Без этого клиент получал лишь схему данных, но не сами данные.
holyday
Sinferno
jk3
Есть крупные проэкты и на Делфи и под .НЕТ (МВС), но если честно, по данному вопросу я бы ничего не подсказал ... область специфическая )))
не сталкивался ...
Sinferno
holyday, сам не сталкивался, но обстоятельства заставили. smile.gif
holyday
Sinferno
На Делфи пишешь ???
ИМХО: лучше уж на Шарпе под .НЕТ - стабильнее. Особенно нравится в .НЕТ авто-очистка памяти, а то не уследил и пипец, оператору нужно, каждые 2-3 часа перегружать рабочую станцию. Если объём работы большой.
Счас перешёл на кросс-платформенный С++, там опять за памятью следить надо. Но зато начальство на лицензиях от Майкрософта сэкономит (((
Sinferno
holyday, и на шарпе и на С++ тоже приходится писать. Но утверждение о стабильности программы на шарпе мне кажется очень спорным и безосновательным. Некоторые вещи на Шарпе (который в Visual Studio) легче и сподручней делать. Но если уж менять Pascal, то на СИ. Все эти интерпретируемые проги с "управляемым кодом" не люблю. тормоза от него одна и неуправляемость. Один плюс - денег больше платят программисту на C#, или, еще больше, на Java. Кроссплатформенность нормальная есть только у Java, хотя уже появилась линуксовая виртуальная машина для Framework.
Привык сам следить для памятью и всем остальным. Да и проги на нормальном языке не тормозят и не жрут ресурсы мешками. Pascal который в Delphi) мне кажется даже более удобным, стройным и непротиворечивым, чем СИ и С++. Возможности колоссальные и можно делать почти все. СИ, конечно, более гибок и более мощней, но его развитие шло путем добавления всякой функциональности к тому, что есть. И получилось не очень красиво и логично, имхо. Чего только стоит работа со строками.
Наверное, главный критерий в оценки языка - это понятность и простота кода. Чтобы взглянув на код, я видел алгоритм и предназанчение программы. Тут Pascal'ю равных нет, имхо.
holyday
Sinferno
Спорить не буду, ибо каждому своё smile.gif
Но, я в восторге от Шарпа.
В С++, пока только въезжаю rolleyes.gif , хотя есть два проэктика рабочих.
Sinferno
holyday, тоже спорить не стану. wink.gif Ибо лучший язык - это тот, которым лучше владеешь.
Sinferno
Начинаю новый большой проект на шарпе. Работа с базами данных мне показалась намного сложней, чем в Delphi (может из-за отсутствия опыта). Но собираюсь написать под себя классы, чтобы инкапсулировать всю тягомотину.
holyday
Sinferno
Да, реализация классов, контролов, ... в Шарпе намного мощнее и легче чем в Делфи.
Единственно, что меня напрягает, так это сам .НЕТ, который приходится "тягать" с инсталником.
.НЕТ 2.0 ~ 22 МБ всего, но скачивать с Инета не каждый захочет ...