Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Empezando con Delphi (https://www.clubdelphi.com/foros/showthread.php?t=68981)

Toretto 19-07-2010 08:58:55

Empezando con Delphi
 
Hola a tod@s,

A ver si me podéis echar un cable porque soy muy novato en Delphi. Me han mandado una cosa y no sé por donde pillarlo. Tengo una tabla en una BD con un campo de tipo blob que contiene una foto, lo que tengo que hacer es acceder ese campo, recuperar la información y crear un fichero jpg.

No sé como hacerlo, alguna ayudita??


Muchas gracias

Casimiro Noteví 19-07-2010 12:21:11

Hola Toretto, bienvenido a clubdelphi, te recomiendo que leas nuestra guía de estilo para así poder ayudarte mejor.

Si haces una pequeña búsqueda encontrarás que tu problema se ha tratado en muchas otras ocasiones, si tienes alguna duda, ya sabes donde estamos.

Toretto 19-07-2010 12:28:03

Gracias Casimiro, he estado utilizando el buscador... y he encontrado más o menos lo que buscaba.

Meto la consulta en un archivo de texto con savetofile

y luego ese archivo de texto, lo copio en otro archivo con extensión jpg. Lo que no sé si funcionará.

Gracias

Toretto 22-07-2010 09:53:15

Pues sigo con la duda, en mi bbdd tengo la imagen almacenada en un campo blob y tengo que pasarla a un fichero jpg. Utilizo el siguiente código pero no me crea el archivo:

cadena1:= 'Select foto from persona where (nombre = 'David')';
QBuscar.Sql:= cadena1;
QBuscar.sql.savetofile('c:\prueba.jpg');

Estoy utilizando mal la función savetofile???


Gracias

Enan0 22-07-2010 14:15:53

Cita:

Empezado por Toretto (Mensaje 371167)
Pues sigo con la duda, en mi bbdd tengo la imagen almacenada en un campo blob y tengo que pasarla a un fichero jpg. Utilizo el siguiente código pero no me crea el archivo:

cadena1:= 'Select foto from persona where (nombre = 'David')';
QBuscar.Sql:= cadena1;
QBuscar.sql.savetofile('c:\prueba.jpg');

Estoy utilizando mal la función savetofile???


Gracias


QBusca nunca fue abierto por lo que veo.

Si estas utilizando un Query, antes que nada tenedias que hacer lo siguiente!

Código Delphi [-]
cadena1:= 'Select foto from persona where (nombre = 'David')';
QBuscar.Sql:= cadena1;
QBuscar.Open;
if not QBuscar.eof then
   TBlobField(QBuscar.fieldbyName('foto')).savetofile('c:\prueba.jpg');

Toretto 23-07-2010 08:08:07

Lo he probado y me sale error en el Open: Undeclared identifier

Enan0 23-07-2010 13:13:24

Mira, no se que tipo de Objeto estas usando para Ejecutar la consulta.
Ese error es porque Tu objecto QBuscar no tiene la propiedad, Procedimiento o funcion, Open.

Estaria bueno que comentes con que estas haciendo la consulta a la base de datos.

fidel 23-07-2010 20:03:35

Prueba a ver si te funciona esto para visualizar la foto .jpg

Para visualizar lo foto utilizo un TImage (ojo, SI es un TImage)

"ImageFoto" es el TImage
"DM" es un DataModule
"IBDSAlumnos" es un DataSet

Adaptalo a tus necesidades, supongo que si lo quieres en un fichero podrás gardarlo en él en vez de visualizarlo en el TImage.

Si la imagen es un .BMP cambia esta linea
ImageFoto.Picture.Graphic:= TJpegImage.Create
por esta otra
ImgFoto.Picture.Graphic:= TBitmap.Create

Código Delphi [-]
procedure ................;
var
  m : TStream;
begin
  //visualizar foto
  ImageFoto.Picture.Graphic:= TJpegImage.Create
  //copiar los datos desde la tabla con un stream
  m:= DM.IBDSAlumnos.CreateBlobStream(DM.IBDSAlumnosFOTO, bmRead);
  ImageFoto.Picture.Graphic.LoadFromStream(m);
  m.Free;
end;


La franja horaria es GMT +2. Ahora son las 08:43:35.

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