![]() |
[Datasnap] Filedownload über TDSRestConnection führt zu out of memory
Hallo zusammen,
ich habe einen Datasnap-Rest-Server. Dieser soll an meinen Client Daten übertragen (im konkreten Fall handelt es sich um eine PDF-Datei). Der Servercode lautet
Delphi-Quellcode:
Der Client ruft den Download wie folgt auf
function TDsServer.Download(Id: String; out size: Int64): TJsonObject;
var stream: TMemoryStream; strPfad: String; begin strPfad := ExtractFileDir(ParamStr(0))+PathDelim+'Files'+PathDelim+Id+PathDelim+'reports'+PathDelim+Id+'.pdf'; try try stream := TMemoryStream.Create; stream.LoadFromFile(strPfad); stream.Position := 0; result := TJsonObject.Create; result.AddPair(TJsonPair.Create('data', EncodeBase64(stream.Memory, stream.Size))); except on E:Exception do begin memError.lines.add(E.Message); end; end; finally begin FreeAndNil(stream); end; end; end;
Delphi-Quellcode:
Beim Übertragen von einer Datei die ca. 60 MB groß ist, verdoppelt sich der benutzte Arbeitsspeicher des Clients solange bis es knallt.
procedure TfrmContent.download(id:String);
var restClient: TDsServerClient_Rest; size: Int64; json: TJsonObject; begin restClient := TDsServerClient_Rest.Create(frmContentProgramm.DSRestConnection1); //json := TJsonObject.Create; json := restClient.GutachtenDownload(id,size); end; Kennt jemand das Problem? Bzw. habe ich einen groben Fehler im Code? Gruß Philip |
AW: [Datasnap] Filedownload über TDSRestConnection führt zu out of memory
Hi, hast du dazu schon eine Lösung habe das gleiche Problem.
Grüße Jens |
AW: [Datasnap] Filedownload über TDSRestConnection führt zu out of memory
Gleiches Problem.. :|
|
AW: [Datasnap] Filedownload über TDSRestConnection führt zu out of memory
Wird bei
Delphi-Quellcode:
Wird nicht logischerweise immer bei jedem Aufruf der Prozedur restClient erstellt aber nie wieder frei gegeben oder bin ich grad blöd?
procedure TfrmContent.download(id:String);
var restClient: TDsServerClient_Rest; size: Int64; json: TJsonObject; begin restClient := TDsServerClient_Rest.Create(frmContentProgramm.DSRestConnection1); //json := TJsonObject.Create; json := restClient.GutachtenDownload(id,size); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz