Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   error al mostrar un jpeg (https://www.clubdelphi.com/foros/showthread.php?t=47411)

Nelly 27-08-2007 19:03:44

¿Podrian explicar el significado del error en tiempo de ejecución?
 
Hola a todos, espero inicien la semana mucho mejor que yo.

Antes de explicar el problema desarrollo en Delphi 7 y para BD firebird. Pasa que tengo una tabla que se llama fotos de ahi extraigo la foto para mostrar en caso que la persona tenga foto en la BD. Utilizo la siguiente consulta:
Código SQL [-]
select c.*, f.foto,m.nombre_mpo as municipio from afiliados c
inner join mpo_cdto m on c.cve_mpo=m.cve_mpo left join fotos f
on c.reafilcve_rnm=f.cve_rnm
where (falta between :fini and :ffin) and (c.cve_mpo=:cve_mpo)
order by c.appat

En el boton propiedades de mi form: pongo el siguiente codigo, mostrar es una variable que declare con anterioridad como tipo:TJPEGImage;
Código:

    // codigo que esta en el boton propiedades.
      mostrar:=TJPEGImage.Create;
      mostrar.Assign(qrylistafiliados.FieldByName('foto'));
      frmpropcenso.Image2.Picture.Assign(mostrar);
      mostrar.Free;

Pasa que si eligo una persona con foto al momento de ver sus propiedades no hay ningun error, pero cuando veo las propiedades de una persona que no tiene foto almacenada en la BD me muestra el siguiente error:
raised exception class EJPEG with message 'JPEG error # 42'

Espero hayan entendido la explicación y puedan ayudarme a solucionar el problema de ante mano muchas gracias.

Nelly 27-08-2007 20:52:08

Podrian responder por favor se que hay muchas personas que tienen dudas al igual que yo, asi que sere paciente.

maeyanes 27-08-2007 21:03:16

Prueba con esto:

Código Delphi [-]
// codigo que esta en el boton propiedades.
mostrar:=TJPEGImage.Create;
try
  if not qrylistafiliados.FieldByName('foto').IsNull then
    mostrar.Assign(qrylistafiliados.FieldByName('foto'));
  frmpropcenso.Image2.Picture.Assign(mostrar);
finally
  mostrar.Free
end;

Ah!! y por cierto... recuerda que no es obligación de los miembros de este foro el contestar todas las dudas... si no se te había contestado es por que o no entendían tu pregunta o no sabían responderte...


Saludos...

Nelly 27-08-2007 21:33:02

Agregue el codigo, pero me marca el siguiente error:
Access violation at address 0042380B in modulo proyec.exe. Read of address 000000

dec 27-08-2007 21:42:18

Hola,

Pon por aquí el código que estás utilizando. Las violaciones de acceso... suelen producirse por acceder a un objeto que no está creado aún, o que ya ha sido liberado... Y en todo caso un poco de paciencia... dos horas después de plantear tu pregunta ya obtuviste respuestas, ¿puede pedirse más? :)


La franja horaria es GMT +2. Ahora son las 11:05: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