Problema con variable BLOb

¿Tengo en mi BD Microsoft Sql Server 2000 una tabla? ¿SOCIO? Asociado a un datawindow: dw_socio, ¿en esa tabla existe un campo? ¿Foto? Para almacenar las fotos de los socios, el problema que tengo es que cuando navego por cada registro de socios hay registros que no tengo almacenado foto pero se visualiza la última foto navegada, e intentado limpiar la variable Blob y el objeto picture, pero sigo teniendo el mismo problema, aquí le envío el código para ver que estoy haciendo mal:
dw_socio rowfocuschanged()
blob soc_id_pic
integer ii_currow
string scodigo
ii_currow=0
scodigo=""
ii_currow=dw_socio.getrow()
scodigo=dw_socio.GetItemString(ii_currow,"cod_soc")
setnull(soc_id_pic)
p_foto.setpicture(soc_id_pic)
selectblob foto into:soc_id_pic from socio where cod_soc=:scodigo;
p_foto.setpicture(soc_id_pic)

6 Respuestas

Respuesta
1
Lo que tienes que hacer es preguntar si el valor que te da el selectblob es nulo, o si existe información, sino existe deshabilita el campo picture... colocalo como invisible y cuando exista colocalo visible, es más fácil trabajar así...
Respuesta
1
Te iré tirando posibles soluciones.. por ahí encontramos una que te ayude con tu problema...
Una de ellas seria que crees un bmp, jpg o lo que uses para guardar tus fotos.. con un fondo en blanco... o el logo de tu sistema.. algo así..
Por ejemplo:
blanco.jpg
Esta ya puedes almacenarla en una varibal global al entrar al sistema.. o como te parezca mejor.. lo cargas cada vez que lo utilizas.. tu dirás cual te queda mejor...
Entonces.. tu codigo quedaria asi..
dw_socio rowfocuschanged()
blob soc_id_pic
integer ii_currow
string scodigo
ii_currow=0
scodigo=""
ii_currow=dw_socio.getrow()
scodigo=dw_socio.GetItemString(ii_currow,"cod_soc")
//g_pic_default esta es nuestra variable global para la imagen default..
p_foto.setpicture
(g_pic_default)
selectblob foto into:soc_id_pic from socio where cod_soc=:scodigo;
p_foto.setpicture(soc_id_pic)
Con eso ya tu problema estará solucionado..
Tu código anterior no tiene ningún error.. es el PB que no puede aplicar un picture null.. y por ende deja el anterior... ocurre lo mismo con otro tipo de variables...
Respuesta
1
Entiendo tu problema y en algunas ocasiones yo he pasado por lo mismo, casi podría decirte que de la misma forma, la diferencia era que en lugar de presentar una imagen de una persona, presentaba una firma,
El asunto lo resolví radicalmente, simplemente si hay foto, el control se encuentra visible, de lo contrario no.
Para cambiar el valor de la propiedad visible del control que poseerá la foto, utiliza la función
MODIFY(),
la cual utiliza un parámetro, del tipo string, mi recomendación es que le eches un vistazo a la ayuda en linea del f1, allí no solo te explica como parametrizar la función modify, sino encontraras varios ejemplos.
Respuesta
1
Estuve viendo tu código, me parece que está bien, pero también podrías validar que después del select que la variable soc_id_pic tenga asignado un valor adecuado para poder ejecutar la instrucción p_foto. setpicture(soc_id_pic)
Respuesta
Enviame tu email y te enviare un ejemplo de como hacer un navegador de fotos.
Respuesta
-1
Te recomiendo que cuando un registro no contenga foto pongas en invisible, el campo.
Así lo he realizado, por que también tenia ese problema

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas