Форум: "Corba";
Текущий архив: 2013.10.20;
Скачать: [xml.tar.bz2];
ВнизКак в трехзвенке передать файл с сервера приложений? Найти похожие ветки
← →
bronco79 (2007-05-28 17:34) [0]Подскажите, какие есть способы передачи файла (exe, xls) с сервера приложений на клиента? Использую DCOM.
← →
Сергей М. © (2007-05-29 09:58) [1]
> какие есть способы передачи файла
Способов передачи файла всего один - передача его имени (если это необходимо) и содержимого.
И "трехзвенка" тут совершенно ни причем.
← →
bronco79 (2007-05-29 12:52) [2]Спасибо, я в курсе :-)
Интересует передача содержимого.
← →
Сергей М. © (2007-05-29 12:54) [3]
> Интересует передача содержимого
Содержимое обычно передают массивом либо стримом.
← →
bronco79 (2007-05-29 12:56) [4]То есть писать интерфейс самому или что-то готовое уже есть?
← →
Сергей М. © (2007-05-29 13:06) [5]Для случая со стримом есть готовый интерфейс - IStream.
Для случая с массивом проще всего поступить так
Result := VarArrayCreate(..), где Result - это OleVariant.
← →
bronco79 (2007-05-29 13:32) [6]Спасибо. Буду пробовать. Правда с IStream пока не совсем ясно, т.к. Transactional Data Module такой тип не поддерживает...
← →
Сергей М. © (2007-05-29 16:18) [7]
> Transactional Data Module такой тип не поддерживает
Зато поддерживается IUnknown.
А IStream есть наследник IUnknown.
← →
bronco79 (2007-07-19 21:45) [8]Вобщем, с трехзвенкой оказалось не все так гладко...
Если подключаешься через TDCOMConnection, то можно передавать и через IStream и через массив (пробовал файлы размером до 700 Мб).
Если подключаешься через TWebConnection, то IStream не рулит (ошибка что-то вроде "Interface not supported"), мало того, похоже, что никакие наследники IUnknown при таком подключении также не поддерживаются. Но и это еще не все. Массивы данных размером 10-20 мегабайт передаются нормально, а большие не передаются - виснет намертво(вроде httpsrvr.dll, но это не точно).
Короче говоря, поскольку мне требовался универсальный механизм для трех типов подключений (TDCOMConnection, TWebConnection, TSocketConnection), пришлось реализовывать передачу через массив порциями по N килобайт.
← →
Polevi © (2007-08-06 09:00) [9]http://www.rsdn.ru/article/com/marsh.xml?print
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2013.10.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c