Estimados,
estoy trabajando en un proyecto de tres capas, para ser implementado en dispositivos móviles.
Entiendo que la tecnología DataSnap me podrá facilitar las cosas al momento de conectarme de forma remota al servidor ¿que otras tecnología podría utilizar?
El punto principal de este hilo es preguntarles a los grandes gurus, como puedo almacenar y cargar una desde un cliente pasando por un servidor DataSnap una imagen, ya sea en un servidor FTP, como en una base de dato.
He intentado con este procedimiento, pero solo me guarda los campos usuario, y fecha, el campo imagen queda en blanco.
Código Delphi
[-]
procedure TServerMethods1.insert_imagen(imagen: TStream; usuario: integer);
begin
with ibsql1 do
begin
transaction.Active := true;;
close;
sql.clear;
sql.add('insert into imagenes (usuario, imagen, fecha)');
sql.add('values (:usuario, :imagen, current_timestamp)');
ParamByName('imagen').LoadFromStream(imagen);
ParamByName('usuario').asinteger :=usuario;
execquery;
transaction.CommitRetaining;
end;
end;
y lo llamo desde el cliente con esto, en donde image1 (TImage) tiene previamente una imagen cargada.
Código Delphi
[-]
procedure TForm2.Button4Click(Sender: TObject);
var
stream : Tmemorystream;
myServer : TServerMethods1Client;
begin
if SQLConnection1.Connected then
myServer := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
stream := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(stream);
myServer.insert_imagen(stream, 10);
finally
stream.free;
myServer.Free; end;
end;
Que podrá ser ??
Alguna idea ??