Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2008
Avatar de eddg
eddg eddg is offline
Miembro
 
Registrado: ago 2007
Ubicación: Maracay, Edo Aragua, Venezuela
Posts: 75
Poder: 17
eddg Va por buen camino
Mostrar Imagen de Registro de Access

Hola a todos, un gusto saludarlos... Tengo varias horas tratando de conseguir la solución a mi DUDA en este foro, seguramente sí esté pero no la consigo.

Tengo lo siguiente, una base de datos en ACCESS y la conecté con una Tabla BDE.

En esa BD tengo los nombres, cedula y foto de los trabajadores de una empresa.

Utilizando un DbGrid, muestro el nombre y la cedula, sin embargo, quiero mostrar en un componente IMAGE, la foto de la cada registro al hacer click sobre el mismo.

Para mostrar el NOMBRE utilice el siguiente codigo.

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
dbtext1.Caption:=unit2.DataModule2.Table1NOMBRE.Value;
end;

Pero para la foto no hayo como hacer!

Por favor diganme que debo hacer en este caso!
Responder Con Cita
  #2  
Antiguo 14-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por eddg Ver Mensaje
Para mostrar el NOMBRE utilice el siguiente codigo.
No hace falta que lo hagas manualmente.
Basta con que "enganches" los componentes de Base de Datos del nuevo formulario a la misma fuente de Datos que el DBGrid.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-10-2008
Avatar de eddg
eddg eddg is offline
Miembro
 
Registrado: ago 2007
Ubicación: Maracay, Edo Aragua, Venezuela
Posts: 75
Poder: 17
eddg Va por buen camino
Yo tengo mi DBGrid, y allí sólo muestro los Nombres de los empleados.

Entonces, yo quiero que al hacer click en un registro, me aparezca a un lado en el mismo formulario, todos los datos del empleado, y que además me muestre su FOTO.

Se hacer todo con respecto a los datos, menos lo de la foto!!! he leído y he visto algo relacionado con STREAM, y no se como funciona eso!
Responder Con Cita
  #4  
Antiguo 14-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
2º INTENTO.

Que no hace falta que lo hagas a mano, ni que uses STREAMS.
Coloca un DBImage en tu formulario y en el DataSource el mismo que tengas en el DBGrid. En la propiedad DataField, en campo con la foto.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-10-2008
Avatar de eddg
eddg eddg is offline
Miembro
 
Registrado: ago 2007
Ubicación: Maracay, Edo Aragua, Venezuela
Posts: 75
Poder: 17
eddg Va por buen camino
perfecto, entiendo... ahora! como hago para que cuando le de click sobre un registro en el DBGrid, me aparezca autamicamente la foto en el DBImage?

cual es la orden que debo darle al DBImage?
Responder Con Cita
  #6  
Antiguo 14-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por eddg Ver Mensaje
cual es la orden que debo darle al DBImage?
No debes dar ninguna orden.
Esa es la gracia del asunto. Que si conectas el DBImage y los DBEdit a la misma fuente de datos que el DBGrid, a medida que te vayas moviendo por el DBGrid o pulses sobre una fila, los controles se actualizarán automáticamente. Por eso son DBImage/DBEdit y no Image/Edit.

NOTA: Siempre que los conectes a la misma fuente de Datos (DataSource) que el DBGrid.

A ver si a la tercera va la vencida.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 14-10-2008
Avatar de eddg
eddg eddg is offline
Miembro
 
Registrado: ago 2007
Ubicación: Maracay, Edo Aragua, Venezuela
Posts: 75
Poder: 17
eddg Va por buen camino
Ahora sí entiendo, pero tengo un problema con el formato de las imagenes!!!! como le hago!

No me lee, las JPG, tampoco las BMP, menos las PNG, cuales seran???
Responder Con Cita
  #8  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Neftali, una preguntita, yo he tenido el mismo problema con los formatos, cuando mis imagenes son bmp me los carga bien en el DBImage pero si son jpg no me los carga me sale error de que no reconoce el formato, como se puede hacer para que el DBImage te reconozca mas formatos. Por esa razon es que he utilizado un TImage para cargar las imagenes de mi tabla.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 15-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Para trabajar con JPG hay que añadir diempre la unit jpeg.
Hay varios componentes (1, 2, 3) que soportan formatos de imagen diferentes a BMP. Aunque con algo de código se puede hacer también de forma manual.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Neftali, muchísimas gracias por responder, pero tengo la unit jpeg en mi uses y aún asi no funcionaba, me salía y me sigue saliendo este error "Bitmap image is not value". Por eso lo cambie a mostrar en un TImage pero si se puede con un TDBImage estaría mucho mejor.

Cita:
Empezado por Neftali Ver Mensaje
Aunque con algo de código se puede hacer también de forma manual.
Puedes ayudarme con ese codigo por favor por favor , no quisiera usar otros componentes.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 15-10-2008 a las 15:40:14.
Responder Con Cita
  #11  
Antiguo 15-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Caro Ver Mensaje
Puedes ayudarme con ese codigo por favor por favor , no quisiera usar otros conponentes.
¿Qué Base de Datos estás utilizando?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
¿Qué Base de Datos estás utilizando?
Estoy utilizando Firebird 2.0 y mi campo es de tipo Blob.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #13  
Antiguo 20-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino


Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #14  
Antiguo 20-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Caro Ver Mensaje
Saluditos
Upppppsss!!!

Perdón, "se me fue el Santo al Cielo" con este hilo (como se suele decir).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #15  
Antiguo 20-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Bueno, más o menos me refería a esto. Lo recordaba con menos líneas la verdad.
He subido el ejemplo completo a mi web, ya que "pesa" demasiado para subirlo aquí. Incluye una Base de Datos algunas imágenes y el compilado.

Los dos procedimientos que se usan son estos:

Uno para obtener la imagen JPG de disco y guardarla e la Base de Datos.

Código Delphi [-]
procedure loadjpeg(FieldIMAGEN:TblobField; FileName:string);
var
  Jpg: TJpegImage;
  Stream: TMemoryStream;
begin
  Jpg := nil;
  Stream := nil;
  try
    Jpg := TJpegImage.Create;
    Jpg.LoadFromFile(filename);
    Stream := TMemoryStream.Create;
    Jpg.SaveToStream(Stream);
    Stream.Position := 0;
    FieldIMAGEN.loadFromStream(Stream);
  except
    showmessage('problemas');
    jpg.Free;
    Stream.Free;
    raise;
  end;
  jpg.Free;
  Stream.Free;
end;

Y otro para poder visualizar esas imágenes JPG en los componentes estandard de Base de Datos.

Código Delphi [-]
procedure ShowJPG(FieldImagen:TBlobField; Picture:TPicture);
var
  Stream: TMemoryStream;
  Jpg: TJpegImage;
begin
 Jpg := nil;
  Stream := nil;
  try
    Stream := TMemoryStream.Create;
    FieldImagen.SaveToStream(Stream);
    if Stream.Size > 0
     then begin
            Jpg := TJpegImage.Create;
            Stream.Position := 0;
            Jpg.LoadFromStream(Stream);
            Picture.Assign(Jpg);
         end
     else Picture.Assign(nil);
  except
    Picture.Assign(nil);
  end;
  jpg.Free;
  Stream.Free;
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #16  
Antiguo 21-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Muchas gracias por responder Neftali, te cuento que la forma en que lleno el TImage es algo parecido al codigo que me has pasado.

Lo que yo quiero es que en mi campo donde se guarde la foto, pueda haber tanto imagenes bmp como jpg, para que se haga mas facil he añadido un campo mas para guardar la extension, entonces lo que hice fue verificar la extensión y dependiendo de cual fuera, mostrar de una forma u otra.

En el programa que me has pasado hice los cambios para que puedas ver mejor y me ayudes en un problemita que tengo, ahora se puede registrar tanto bmp o jpg, he añadido un DBCtrlGrid que es ahí donde quiero mostrar el DBImage, así como estaba con el evento AfterScroll que es el que refresca la imagen, no funcionaba nada bien, por lo que he utilizado el evento OnPaintPanel del DBCtrolGrid.

Mis preguntas, con el TImage funciona bien si todos los registros tienen imagenes pero sino, repite la ultima imagen que ha cargado en los que no tienen ninguna imagen, le he asiganado nil por si no encuentra pero nada me sigue cargando la imagen. De mi forma con un DBImagen pasa algo parecido que el anterior la diferencia es que solo el siguiente que no tiene imagen se carga con el anterior, con tu codigo, funciona bien. Por favor me puedes decir que estoy haciendo mal con mi codigo, porque no se asigan nil cuando no encuentra imagen en ese registro , tanto para el TImage como el TDBImage.

Te adjunto el pas, dfm y la BD lo he subido ha rapidshare, esta con el nuevo campo y con algunas imagenes bmp http://rapidshare.com/files/156026934/DataBase.mdb.html

Saluditos
Archivos Adjuntos
Tipo de Archivo: zip ImagenesDB.zip (3,1 KB, 9 visitas)
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #17  
Antiguo 21-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola Caro.
Bueno, queda descartado el tema del DBImage, puesto que creo que al utilizar DBCtrlGrid que visualiza más de un registro, esa opción no tiene mucho futuro.

Si te quedas con el Image, la única slución que se me ha ocurrido (no se si la has probado ya) es utlizar un BMP vacío para "limpiar" la imagen. Parece un poco "chapuza" y realmente lo es, pero con las pruebas que he hecho, es la única forma que he encontrado de que funcione.
La he añadido a un recurso para que no esté en disco.
Archivos Adjuntos
Tipo de Archivo: zip ImagenesDB1.zip (3,9 KB, 10 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #18  
Antiguo 21-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Muchas gracias Neftali, entonces seguire utilizando el TImage con el bmp vacío , acabo de hacer la prueba y si funciona . Una preguntita mas solo por curiosidad que significa "se me fue el Santo al Cielo".

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #19  
Antiguo 21-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Caro Ver Mensaje
"se me fue el Santo al Cielo".
Algo así como:
"Se me pasó y ...", "se me olvidó y ..."

Cuando quieres hacer algo, se te olvida y dejas de hacerlo. Cuando te acuerdas sale esta frase... "se me fue el Santo al Cielo" en referencia a aquello que debías hacer.

Es difícil de explicar...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #20  
Antiguo 21-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Cuando quieres hacer algo, se te olvida y dejas de hacerlo. Cuando te acuerdas sale esta frase... "se me fue el Santo al Cielo" en referencia a aquello que debías hacer.
Me ha quedado claro amiguito .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
mostrar imagen MARLON1 Varios 18 04-04-2008 20:22:45
Insertar Imagen en Registro de Access Saiyan Conexión con bases de datos 7 22-08-2007 17:27:52
Mostrar una imagen JPG Doraemon Gráficos 1 19-01-2007 04:10:36
Buscar registro y mostrar en edits CONY Conexión con bases de datos 1 18-07-2006 23:14:43
Mostrar 3 registro de un campo MAXIUM Tablas planas 5 27-09-2005 17:52:13


La franja horaria es GMT +2. Ahora son las 20:21:12.


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