Hallo Zusammen,
kann es sein dass DataSnap keine Binary Blob Feld transportieren kann?
Die Remote Methode überträgt ein TDataSet. Ein Feld der Tabelle ist ein Bild dessen Größe auf 100KB begrenz ist.
Das Dataset wird komplett ohne Fehlermeldung übertragen lediglich ist das Bild leer.
Die Methode zum Übertragen:
Delphi-Quellcode:
function TdmDAL.GetADRESS(conn: TFDConnection; TransferID: integer; out RecordCount: integer): TDataSet;
var
oQuery: TFDQuery;
begin
result := nil;
if conn=nil then exit;
oQuery := nil;
oQuery := TFDQuery.Create(nil);
try
TThread.Synchronize(nil, procedure
begin
oQuery.Connection := conn;
oQuery.FetchOptions.AutoFetchAll := afAll;
oQuery.FetchOptions.RecordCountMode := cmTotal;
oQuery.SQL.add('/*Alle Adressen*/');
oQuery.SQL.add('select f.*');
oQuery.SQL.add('from ADRESS f');
oQuery.SQL.add('where ((f.transferid is null) or (f.transferid > :transferid))');
oQuery.Params[0].AsInteger := TransferID;
oQuery.Open;
end);
result := oQuery;
RecordCount := oQuery.RecordCount;
finally
// oQuery.Free;
end;
end;
Clientseitig wird das DataSet in eine MemTable per CopyDataSet kopiert. Dabei ist das Binary Memo immer leer.
mtPostfachPaketIDsForDownload.CopyDataSet(LDataSet, [coStructure, coRestart, coAppend]);
Falls meine Vermutung stimmen sollte, hoffe ich dass es doch eine Möglichkeit gibt Binary Blobs zu übertragen. Die Bilder zu extrahieren und
per
FTP gesondert zu übertragen ist nur relativ Schlecht umsetzbar.
Schöne Grüße
Kostas