La siguiente secuencia de scripts permite manipular fotografias, archivos de texto, word, excel etc a traves de un objeto ole. Cargarlo, Guardarlo y rescatarlo de la base de datos.
El ejemplo que sigue manipula archivos graficos pero es exactamente el mismo procedimiento para otros tipos de archivos. Ojo que la aplicacion (servidor) que los crea debe estar instalada en la maquina que corre la aplicacion.
Crea en una ventana de aplicacion tres botones con los siguientes textos: Carga, Guarda, Rescata.
En el boton carga se selecciona el archivo grafico, utilizando el siguiente script:
//con este script se caraga y muestra en el ole la fotografia seleccionada
string ls_pathname, ls_filename, ls_filtro
//asigno el filtro de extension para las fotografias
ls_filtro = JPEG Files (*.jpg),*.jpg, + GIFF Files (*.gif),*.gif,
//muestro el dialogo de windows para abrir un archivo
IF GetFileOpenName ( Archivo de Imagen [4*5 cm o 113*142 pixeles o 1,56*1,97 pulgadas], ls_pathname, ls_filename , jpg, ls_filtro) 1 THEN RETURN
//inserto en el objeto el archivo de imagen seleccionado si todo ha sido exitoso
IF ole_foto.insertfile(ls_pathname)=-1 THEN
MessageBox(Error, Error al procesar la tarea de apertura de archivo, verifique)
ELSE
//esta variable de instancia guarda el valor del path absoluto de archivo de donde debe rescatarse
is_path=ls_pathname
END IF
En el boton Guarda se coloca el siguiente script, el cual permite guardar en la base de datos el archivo seleccionado:
//declaracion de variable local tipo blob,
blob lbl_foto
//obtengo desde el control los datos de la imagen
lblb_foto=ole_foto.objectdata
//ingreso el blob a la base de datos
UPDATEBLOB menor SET menor_foto = :lblb_foto
WHERE menor_ci=:is_ci;
IF sqlca.sqlcode=0 THEN
messagebox('','Ingreso existoso.')
ELSE
messagebox('','Error en el ingreso')
END IF
Cabe destacar que al utilizar el UPDATE se debe asignar previamente un identificador unico a la tupla que contiene el blob.
En el tercer boton Rescata, obtenemos desde la base de datos el registro que contiene el blob que deseamos mostrar en el oley lo visualizamos con el siguiente script:
//asignacion de variable local blob
blob lbl_foto
SELECTBLOB menor_foto
INTO :lblb_foto
FROM menor
WHERE menor_ci =:ci;//ci es el argumento o criterio para rescatar desde la base de datos sobre el identificador unico menor_ci.
ole_foto.objectdata=lblb_foto
Con estom asignamos lo rescatado alole y mostramos la foto. Espero que les sirva. Dudas, comentarios revisiones no duden en escribir.





