Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1358947313
vladimir2000
2013-01-23 17:21
2013.10.20
Как преобразовать rtf в unicode


15-1367958603
Юрий
2013-05-08 00:30
2013.10.20
С днем рождения ! 8 мая 2013 среда


2-1359315203
Den
2013-01-27 23:33
2013.10.20
Delphi 2010, Surround, region, shortcut?


15-1368217802
Юрий
2013-05-11 00:30
2013.10.20
С днем рождения ! 11 мая 2013 суббота


8-1214420600
Пётр
2008-06-25 23:03
2013.10.20
Альбомная графика в mp3





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский