Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2017
rmeckbell rmeckbell is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 16
Poder: 0
rmeckbell Va por buen camino
Guardar sin ponerle nombre al archivo

Hola estaba buscando en el foro un tema relacionado con campos tipo blob para guardar imágenes en una base de datos,,
y el articulo me ha sido de gran ayuda sin embargo lo que ocupo es guardar una foto que es tomada directamente del celular con mi aplicación,es decir no tengo un archivo tipo imágen lo que tengo es una imagen en memoria desde mi aplicación, pero como hago para indicar el tipo de imagen y ponerle nombre al archivo para guardar directamente en el campo BLOB del la base de datos sin necesidad de crear un archivo físico en el celular..la aplicación se conecta a una base de datos externa tipo Interbase.

Saludos
Responder Con Cita
  #2  
Antiguo 24-06-2017
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por rmeckbell Ver Mensaje
Hola estaba buscando en el foro un tema relacionado con campos tipo blob para guardar imágenes en una base de datos,,
y el articulo me ha sido de gran ayuda sin embargo lo que ocupo es guardar una foto que es tomada directamente del celular con mi aplicación,es decir no tengo un archivo tipo imágen lo que tengo es una imagen en memoria desde mi aplicación, pero como hago para indicar el tipo de imagen y ponerle nombre al archivo para guardar directamente en el campo BLOB del la base de datos sin necesidad de crear un archivo físico en el celular..la aplicación se conecta a una base de datos externa tipo Interbase.

Saludos
¿Cómo estás tomando la foto? ¿Obtienes directamente un "stream"? ¿No se guarda antes la foto en algún lado (aunque sea temporal) y puedes obtener la ruta del archivo? En el primer caso, que obtengas sólo un stream, creo tendrías que buscar información (en este foro se ha tratado alguna vez) sobre cómo averiguar el tipo de imagen desde un "stream". De este modo podrías conocer el tipo de imagen de que se trate y actuar en consecuencia. En el segundo caso, lo que se guarda es acaso una archivo temporal, y, en base a su extensión, podrías ya obtener acaso información suficiente. También es posible que el componente que uses para tomar la foto cuente con algunas opciones que puedan resultar útiles.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 24-06-2017
rmeckbell rmeckbell is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 16
Poder: 0
rmeckbell Va por buen camino
Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo

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);
  //recuperar imagen
  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);  //se indica un error en el bitmap que se carga
  //desde la base de datos

 Stream.Free;                 // liberamos...

 end;

procedure TAccessCameraAppForm.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
      //guardar imagen
var picturename,ruta:string;
        SaveParams: TBitmapCodecSaveParams;
        vstream:TStream;
         codigo:integer;
begin



  { Assign the image retrieved from the Camera to the TImage component. }
  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;

Última edición por Neftali [Germán.Estévez] fecha: 26-06-2017 a las 10:14:43. Razón: Añadir TAG's al código
Responder Con Cita
  #4  
Antiguo 25-06-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración

No abras nuevos hilos para preguntar lo mismo.
Ni tampoco repitas hilos.
Y recuerda poner las etiquetas para el código fuente.

Poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #5  
Antiguo 26-06-2017
rmeckbell rmeckbell is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 16
Poder: 0
rmeckbell Va por buen camino
Hola Creo que tomaré la opciòn de crear un archivo temporar en formato jpg y luego proceder a guardarlo en la base de datos, ya que es un poco confuso conocer en memoria el tipo archivo..ya que solo tengo un stream.

Saludos
Responder Con Cita
  #6  
Antiguo 26-06-2017
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por rmeckbell Ver Mensaje
Hola Creo que tomaré la opciòn de crear un archivo temporar en formato jpg y luego proceder a guardarlo en la base de datos, ya que es un poco confuso conocer en memoria el tipo archivo..ya que solo tengo un stream.

Saludos
Hasta donde yo llego, lo que tienes es un objeto "TBitmap"... de modo que ya sabes que se trata de un "Bitmap"... ¿o me equivoco?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 26-06-2017
rmeckbell rmeckbell is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 16
Poder: 0
rmeckbell Va por buen camino
Hola Dec, totalmente de acuerdo que el objeto es un bitmap, lo que no logro saber es como guardarlo sin pasar por un archivo fìsico en el disco e indicar File.bmp o File.jpg a eso me refiero con confuso. la soluciòn de guardarlo en la base de datos directamente desde memoria. Por eso creo que tomare la opciòn de crear un archivo temporal como indicaste en la primera respuesta.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al guardar un Archivo de FastReport en Base de Datos Firebird con Delphi EX3 daniel_gdfr Firebird e Interbase 0 13-10-2014 21:29:08
Guardar varias Imagenes JPG en un archivo encriptado o en Base de Datos RRenault OOP 11 26-03-2012 10:04:39
Como guardar Fotos en Base de Datos? El_Raso Varios 1 30-01-2007 21:50:21
Guardar una archivo de imagen (bmp,jpg..etc), en la base de datos cahosoft Firebird e Interbase 4 31-07-2004 17:53:56
Como guardar una array en una base datos? ciscu Varios 3 11-02-2004 10:27:49


La franja horaria es GMT +2. Ahora son las 00:58:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi