Hola...
Si alguien me puede ayudar con el siguiente tema, el asunto es que desarrolle una aplicación para Android donde trato de guardar una imagen a una base de datos y a su vez luego recuperar la imagen y mostrarla en un objeto TImage..el tema es que guadar y abrir imágenes desde un archivo si lo logro hacer,, sin embargo con una base de datos se me complica, pues he buscado en varios foros y los ejemplo que dan es cargar la imagen desde un archivo y luego guardarla a la base de datos, pero lo que ocupo es que la imagen tomada directamente desde mi aplicación en el celular, la pueda guardar directamente al campo Blob en la base de datos Interbase en un servidor externo, el problema que tengo no es la conexion con la base de datos sino el poder guardar la imagen en memoria directamente al campo imagen en la base de datos.
Estos son los procedimientos que desarrolle, les agradecerìa cualquier tipo de ayuda.
Código Delphi
[-]
procedure TAccessCameraAppForm.Button1Click(Sender: TObject);
var Stream: TStream;
begin
fdquery1.Close;
fdquery1.SQL.Clear;
fdquery1.SQL.add('select Imagen from Casos where codigo = :code');
fdquery1.ParamByName('code').AsInteger:= 1;
fdquery1.open;
Stream := TMemoryStream.Create;
Stream := fdquery1.CreateBlobStream(fdquery1.FieldByName('Imagen'), bmRead);
fdquery1.Close;
imgcameraImage.Bitmap.LoadFromStream(Stream);
Stream.Free;
end;
procedure TAccessCameraAppForm.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
var picturename,ruta:string;
SaveParams: TBitmapCodecSaveParams;
vstream:TStream;
codigo:integer;
begin
imgCameraImage.Bitmap.Assign(Image);
vstream :=TMemoryStream.Create;
imgcameraImage.Bitmap.SaveToStream(VStream);
fdquery1.Close;
fdquery1.SQL.Clear;
fdquery1.SQL.add('select max(codigo) from Casos');
fdquery1.open;
codigo := fdquery1.Fields.Fields[0].Value+1;
fdquery1.Close;
fdquery1.SQL.Clear;
fdquery1.SQL.Add('Insert Into Casos (Codigo,Nombre,Imagen) VALUES(:code,:name,:foto)');
fdquery1.ParamByName('name').DataType := ftString;
fdquery1.ParamByName('name').AsString:='Jorge';
fdquery1.ParamByName('code').DataType := ftInteger;
fdquery1.ParamByName('code').AsInteger:= codigo;
fdquery1.ParamByName('foto').DataType := ftBlob;
fdquery1.ParamByName('foto').LoadFromStream(vstream,ftBlob);
fdquery1.ExecSQL;
vstream.Free;
fdquery1.Close;
imgCameraImage.Free;
end;