Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
acerca de los campos blob

Buenas,

Aqui seguimos dando algo de guerra
Estoy usando sqlite y lazarus, además del sqlmanager a través del firefox.

Estaba leyendo (creo que erróneamente) que si tengo un campo blob, le puedo añadir la ruta donde está la imagen que quiero para ese campo, pero evidentemente no funciona bien al meter un dbimage e intentar verla (out of memory).

Mi pregunta, a ver si me arrojais algo de luz a este tema, es como puedo añadir una imagen a cada registro y despues poder ver cada imagen asociada a cada registro.

He visto un ejemplo que habeis publicado pero no me aclara mucho.
Y la otra gran pregunta, si es que esto al final me sale, si es posible guardar archivos pdf en esos campos blob.

Gracias a todos
Responder Con Cita
  #2  
Antiguo 14-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En los campos blob puedes guardar lo que quieras.
Exactamente ¿qué problema tienes?.
Responder Con Cita
  #3  
Antiguo 14-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias por contestar,

Bueno, desde sqlite manager he guardado una imagen (ya lo cambie con respecto a la anterior pregunta que quite el enlace).

Aohra mismo es, si pongo un dbimage apuntando al campo blob, como la visualizo.

Y la otra sería como desde programa meto una imagen.
gracias de nuevo.
Responder Con Cita
  #4  
Antiguo 14-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Haz una búsqueda por los foros, es un tema que se ha tratado bastantes veces, a ver si te sirve alguno de estos enlaces escogidos al azar: 1, 2, 3, 4 y 5
Responder Con Cita
  #5  
Antiguo 15-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias de verdad.

Encontre varias cosas que me pudieran servir, pero tengo un problema con esto:

Código Delphi [-]
BlobStream:=form1.zquery1.CreateBlobStream(form1.zquery1.FieldByName('factur'),bmRead);

Me dice que bmRead indentificador no encontrado,

El resto si esta bien declarado, BlobStream es un TStream, así no se que me falta o que unidad tengo que añadir al uses para que me reconozca el bmRead.

Gracias mil
Responder Con Cita
  #6  
Antiguo 15-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Perdon por duplicar, pero no pude editar el mensaje.

Mi error estaba en que no tenia la unit db, que es la que hace que me de error el bmread, perdon.
Responder Con Cita
  #7  
Antiguo 15-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, ¿lo has solucionado?
Responder Con Cita
  #8  
Antiguo 15-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
hola de nuevo.

Bueno, parece que no quiere funcionar.

tengo un blob con una imagen jpg almacenada y, en funcion de este código:


Código Delphi [-]
procedure TForm2.FormCreate(Sender: TObject);
 begin
    jpg := TJPEGImage.Create;

 end;
Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);

var
Stream: TStream;
begin

  Stream := form1.ZQuery1.CreateBlobStream(form1.ZQuery1.FieldByName('factur'),bmread); // Lo mismo que el anterior caso pero ahora en modo de escritura.
 jpg.LoadFromStream(Stream);     // Cargamos el BLOB al objeto JPEG
 Stream.Destroy;                 // liberamos...
 Image1.Picture.Assign(jpg);
end;

Me da el siguiente error:

Jpeg error.

La unidad jpeg no la tengo en lazarus asi que no la puedo asignar, pero viene de la unidad graphics, sino el tjpegimage me habria dado error de compilacion.
Responder Con Cita
  #9  
Antiguo 15-03-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
No te sirve el TDBImage enlazandolo directamente al control de Zeos?
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #10  
Antiguo 15-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias ya probe a ponerlo, pero no sale la imagen.

O hay que añadirle algo mas?

edito:

Acabo de crear un programa nuevo para probar la carga de imagen y me sale violacion de acceso.

Código Delphi [-]

jprocedure TForm1.Image1Click(Sender: TObject);

  var bmp: TBitmap; Stream: TStream;
begin
 if not OpenPictureDialog1.Execute then Exit;
 jpg.LoadFromFile(OpenPictureDialog1.FileName);
end;

Si abre el dialog, si me deja elegir y cuando le doy a aceptar me sale ese error de violación de acceso

Última edición por anubis fecha: 15-03-2012 a las 16:49:28.
Responder Con Cita
  #11  
Antiguo 15-03-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Pues no que yo sepa, un TZQuery, un TDataSource y ya, eso es lo que hago normalmente.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #12  
Antiguo 15-03-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Hola.
Ya he conseguido guardar y recuperar.

Código Delphi [-]
form1.zquery1.edit;
JPG:=TJPEGImage.Create;
if not OpenPictureDialog1.Execute then Exit;
jpg.LoadFromFile(OpenPictureDialog1.FileName);
Image1.Picture.Assign(JPG);
 Stream := form1.ZQuery1.CreateBlobStream(form1.zquery1.FieldByName('factur'), bmWrite); // Asignamos el BLOB a un stream
 jpg.SaveToStream(Stream);        // y guardamos la imagen como JPEG (convertido), en el stream
 Stream.Destroy;// liberamos.
 form1.ZQuery1.ApplyUpdates;


Me faltaría saber si se puede hacer lo mismo con un pdf en vez de un jpg

Gracias a todos

Última edición por anubis fecha: 15-03-2012 a las 19:50:29.
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
Campos Blob L3st4t Debates 2 25-03-2011 21:55:26
campos blob erickperez6 Firebird e Interbase 4 14-04-2010 11:51:35
Consulta acerca de campos autoincrementales mgventura Firebird e Interbase 2 13-06-2005 15:17:34
Campos Blob Huer Varios 1 11-06-2003 10:39:06
Campos Blob Kafu Firebird e Interbase 2 08-05-2003 18:07:54


La franja horaria es GMT +2. Ahora son las 20:37:43.


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