imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 02.07.2006, 22:40     # 1
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Question Проблема с передачей в функцию параметра типа TMemoryStream

Добрый день.

Пишу на Delphi 7 приложение (клиентскую и серверную части) для передачи некоторых данных TMemoryStream функцией SOAP на сервер и последующей обработки. Использую стандартную делфишную заготовку SOAP Server Application и компоненту THTTPRIO на клиенте.

Для передачи в intf модуле объявлен свой тип:
Код:
  TTransferStream = class(TRemotable)
    private
      FTransferStream: TMemoryStream;
    public
      property MStream: TMemoryStream read FTransferStream write FTransferStream;
  end;
Там же в разделе initialization зарегистрировал его:
Код:
  RemClassRegistry.RegisterXSClass(TTransferStream);
  RemClassRegistry.RegisterXSInfo(TypeInfo(TTransferStream));
Вот функция на сервере:
Код:
function TClientSOAP.RegisterShipments(TransferStream : TTransferStream) : String;
begin
if TTransferStream(TransferStream) <> nil then
    Result := IntToStr(TTransferStream(TransferStream).MStream.Size)
  else
    Result := 'TTransferStream(TransferStream) = nil';
end;
Проблема в том, что при передаче с клиента непустого TranferStream проверка на сервере TTransferStream(TransferStream) <> nil всегда дает отрицательный результат - т.е. переменная пуста.

Кстати, если в качестве входного параметра функции передавать строку String - все ок - что отправил с клиента, то и приходит на сервер.

Подскажите, что же я делаю не так?

Последний раз редактировалось PLP; 04.07.2006 в 11:42.
PLP вне форума  
Старый 06.07.2006, 20:55     # 2
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Делюсь опытом.

Не пересылается TMemoryStream - ну и хр.. с ним. Можно сделать так - из потока писать в строку, эту строку перекидывать в base64, а на другом конце делать обратное преобразование.
PLP вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 00:51.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.