Problemas con campo image sql server

120 views
Skip to first unread message

Sebastian

unread,
Jan 30, 2014, 8:27:15 AM1/30/14
to publice...@googlegroups.com
Estimados amigos del foro.
Estoy intentando recuperar de una base de datos sql server un campo de tipo image.

Lo que hago es una simple consulta select y el resultado lo vuelco a un cursor.
Muestro en un form los datos recuperados de la siguiente forma:

   thisform.txtApellidos.Value=Cur_personal.Apellidos
   thisform.txtFchNac.Value=Cur_personal.Fecha_Nacimiento
   thisform.txtNacionalidad.Value=Cur_personal.Nacionalidad
   thisform.txtNombres.Value=Cur_personal.Nombres
   thisform.txtTipoyNroDoc.value=Cur_personal.Tipo_Nro_Documento
   ThisForm.imgFoto.pictureval=Cur_personal.foto

Pero al tratar de cargar la foto me da un error que dice: operation is invalid for a general field

Alguien tiene idea de que puede estar mal ?

Estoy trabajando con sql server 2005 y vfp 9

Les agradezco la ayuda.
Slds.

Ariel D'Alfeo

unread,
Jan 30, 2014, 8:35:27 AM1/30/14
to publice...@googlegroups.com
tenes que convertir el campo foto, en una imagen. osea escribir el dato
en el disco
mira este ejemplo:

CURSORSETPROP("MapBinary",.T.,0) &&seteo el cursor como MapBinary
SELECT (Cur_personal) &&selecciono el cursor
lnomimag=FULLPATH("") +'ImagenCur_personal.JPG' &&asigno una
variable con el nombre de la imagen que voy a guardar y su ubicacion en
la raiz del sistema
IF FILE(lnomimag)
DELETE FILE (lnomimag) &&pregunto si la imagen existe,
si existe la borro
ENDIF
STRTOFILE(=Cur_personal.foto,lnomimag,0) &&escribo la imagen en
disco, en el directorio seteado en lnomimag

ThisForm.imgFoto.pictureval=lnomimag && asigno la imagen al
picture

Esta es la forma que encontre para hacer mi proyecto y anda muy bien,
espero que te sirva
--
Ariel D'Alfeo
Córdoba, Argentina

Sebastian Izuibejeres

unread,
Jan 30, 2014, 9:58:02 AM1/30/14
to publice...@googlegroups.com
Ariel, gracias por tu respuesta.

Me funciona perfecto en tiempo de diseño, pero me da un error que dice el valor o tipo de argumento no es valido para la funcion  cuando lo ejecuto en tiempo de ejecución.

Se te ocurre que puede ser...?

slds. y gracias nuevamente
--

______________________________________________________________________________
Sebastián Izuibejeres


Antes de imprimir este mensaje, por favor compruebe que es verdaderamente necesario. El Medio Ambiente es cosa de todos. 

Ariel D'Alfeo

unread,
Jan 30, 2014, 10:48:06 AM1/30/14
to publice...@googlegroups.com
podes postear el codigo como te quedo?



-- 
Ariel D'Alfeo
Córdoba, Argentina


Sebastian Izuibejeres

unread,
Jan 30, 2014, 11:41:59 AM1/30/14
to publice...@googlegroups.com
Aunque no entendi del todo la diferencia, lo hice funcionar asi:

   IF FILE('image_PC.JPG')
    DELETE FILE('image_PC.JPG')
   ENDIF
   
   lcbin_pc = CAST(Cur_personal.foto as Blob)
   nImage_PC_sql = STRTOFILE(lcbin_pc ,'image_PC.JPG')
   thisform.imgFoto.Picture='image_PC.JPG'


Ahora logro hacerlo correr sin problemas.
Muchas gracias por tu ayuda Ariel, un saludo cordial

Reply all
Reply to author
Forward
0 new messages