Ver Mensaje Individual
  #3  
Antiguo 04-10-2013
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 18
mjjj Va por buen camino
Estimado, estoy probando Delphi XE5, con una aplicación para Android y un servidor DataSnap.
Lo que necesito es insertar un registro en una base de Dato Firebird 2.5, en un campo tipo BLOB (size 16384, type Text), desde un cliente con el procedimiento insert_imagen (servidor DataSnap).
La imagen está previamente cargada y visualizada en un TImage, llamado imgCameraPicture.

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 desde el cliente llamo al procedimiento como sigue.

Código Delphi [-]
var
  myServer : TServerMethods1Client;
  stream : TStream;
begin
if SQLConnection1.Connected then
begin
  myServer := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
  stream := TMemoryStream.Create;

    try
    imgCameraPicture.MultiResBitmap[0].bitmap.savetostream(stream);
    myServer.insert_imagen(stream, 10);

  finally

    stream.Free;
    myServer.Free;
  end;
end;
end;

con todo esto logro insertar el registro en la base de dato, pero el campo imagen está en blanco. que podrá ser ??
Responder Con Cita