Einzelnen Beitrag anzeigen

WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Datei über DataSnap Verbindung senden

  Alt 5. Jan 2009, 21:51
Datenbank: DataSnap • Version: 12 • Zugriff über: SQLConnection + SQLServerMethod
Hallo,

ich "missbrauche" eine DataSnap Datenbank Verbindung für einen Remote-Explorer. Der Server läuft auf einem Rechner im Keller und der Client soll mir bestimmte Ordner auf seiner Festplatte anzeigen. Ich möchte nicht einfach normale Windows-Freigaben benutzen, da ich spezielle Shortcuts und andere Funktionen einbauen möchte. Nun bringt es mir nichts die Dateien einfach nur anzukucken, sondern würde ich sie auch gerne runter- und neue Inhalte hochladen.
Das Durchsuchen alleine klappt ganz gut, aber das Runterladen scheitert ab einer Dateigröße > 29 KB.
Die GetFile Methode auf dem Server sieht so aus:
Delphi-Quellcode:
function TDSServerModule1.GetFile(Filename: string): TMemoryStream;
begin
  Result := TMemoryStream.Create;
  Result.LoadFromFile(Filename);
end;
und der Client ruft sie so auf:
Delphi-Quellcode:
function TForm2.GetFile(Filename: string): Integer;
var
  Svr: TDSServerModule1Client;
begin
  Svr := TDSServerModule1Client.Create(SQLConnection1.DBXConnection);
  try
    Result := Svr.GetFile(Filename).Size;
  finally
    FreeAndNil(Svr);
  end;
end;
Und wiegesagt, wenn die angeforderte Datei > 29 KB, dann hat der MemoryStream eine Größe von -1. Lässt sich das irgendwie umgehen oder ist diese Datenbank einfach nicht dazu gemacht große Datenmengen aufeinmal zu übertragen? Ich möchte mich ungern mit Socketprotokollen etc. herumschlagen, diese Methode hier erscheint mir viel einfacher
  Mit Zitat antworten Zitat