Ich würde statt Datasnap direkt auf
Indy zugreifen. Ich versende z.B. so einen Stream:
Delphi-Quellcode:
begin
sinput:=IOHandler.ReadLn;
try
memo1.Lines.Add('Lade: '+sinput);
dm_vvk.cs_get_user.Params.ParamByName('iuser').AsString:=sinput;
dm_vvk.cs_get_user.Open;
stream := TMemoryStream.Create;
vtable:= TVirtualTable.Create(self);
vtable.Assign(dm_vvk.cs_get_user);
buf:=nil;
vtable.SaveToStream(stream,True);
IOHandler.Write(stream,0,true);
buf:= nil;
vtable.Free;
stream.Free;
finally
end;
Und lese den Stream beim Client so ein:
Delphi-Quellcode:
stream:= TMemoryStream.Create;
abuf:= nil;
IdTCPClient1.IOHandler.WriteLn('3');
IdTCPClient1.IOHandler.WriteLn(aactuser.username);
IdTCPClient1.IOHandler.ReadStream(stream);
Vtuser.LoadFromStream(stream,true);
Vtuser.Active:=true;
stream.Clear;
LG
Dirk