Недавно я начал использовать DataSnap в Delphi для создания веб-службы RESTful. После того, как я следовал руководствам самого Марко Канту и нескольких других в Интернете, я успешно запустил всю «цепочку».
Но есть небольшая проблема со скоростью; теперь клиент может отправить поток (вместе с его размером) на сервер (который из-за ошибки здесь Параметры метода DataSnap XE2 и TStream, считываются до отправленного размера), и сервер повторно соберет его в файл и сохранит на диске.
Но для файла 3,66 МБ это занимает более 50 секунд!
Должно ли быть так? На сервере у меня есть:
try
F := TFileStream.Create('written.dat', fmCreate);
F.Position := 0;
F.CopyFrom(Data, DataSize);
finally
F.Free;
И на стороне клиента:
var
Server: TServerMethods1Client;
DBStream: TFileStream;
begin
Server := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
DBStream := TFileStream.Create('DataSnapServer.exe', fmOpenRead);
DBStream.Position := 0;
Showmessage(IntToStr(Server.SendData(DBStream, DBStream.Size)));
finally
Server.Free;
Любая помощь приветствуется!
Привет, Адриан
interface
-определенные службы (нет необходимости проходить через все сантехнические схемы и мастера DataSnap, а также с очень хорошая скорость) - он даже может использовать http://synopse.info/forum/search.php?search_id=613347850 без копии в памяти пользователя. - person Arnaud Bouchez   schedule 10.09.2012