Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#2

AW: Multipart/form-data im Datasnap REST Server Apache Link Module

  Alt 22. Apr 2020, 09:28
Du kannst direkt einen TStream als Parameter oder Result einer DataSnap-Methode verwenden.

Aber Achtung, ab etwa 32 KB (über einer Blockgröße im Übertragungsweg) wird der Stream nicht sofort/direkt übertragen und weil da am Ziel eine spezielle TStream-Instanz ankommt, wo Size = -1 ist, kommen z.B. viele LoadFromStream-Funktionen nicht damit klar, welche vorm/beim Lesen auf die Size gucken.

Wir/Ich hatte daher das generierte DataSnap-Zeug nochmal bissl erweitert und kopiere beim Empfang (Server und Client) nochmal in einen eigenen TMemoryStream um.
Grund:
* entwededer ist Size >= 0, dann kann diese Instanz wie ein normaler TMemoryStream verwendet werden
* und bei Size < 0 muß man so lange Stream.Read machen, bis dort Result=0 sagt, dann ist man am Ende
** während dem Lesen wird dann vom DataSnap auch der Rest der Daten übertragen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Apr 2020 um 09:35 Uhr)
  Mit Zitat antworten Zitat