Power Builder - Como mostrar y actualizar imagenes en la base de d

 
Vista:

Como mostrar y actualizar imagenes en la base de d

Publicado por Eduardo Peña Oganes (1 intervención) el 25/06/2007 21:21:09
Buenas con todos tengo este programa en PB 9.0:

1. Creamos una tabla llamada 'alumnos_fotos' con 2 campos: 'cod_alumno' de tipo char(2) y foto_alumno de tipo image(16),
al campo cod_alumno lo ponemos como Clave Principal.
a esta tabla le agregamos 3 registros con los codigos: '01', '02', y '03'

2. Creamos una Window con los siguientes objetos:
un Picture Control, llamado 'p_foto'
dos Command Button, llamados 'cb_cargar_foto' y 'cb_ver_foto' y
un Single Line Edit, llamado 'sle_cod_alumno'

3. En el evento clicked de 'cb_cargar_foto' poner el siguiente codigo:


STRING ls_pathname, ls_filename, ls_filtro, ls_cod_alumno
LONG ll_File
BLOB lbl_data, lbl_temp

ls_filtro = "JPEG Files (*.jpg),*.jpg," + "GIFF Files (*.gif),*.gif,"
IF GetFileOpenName ( "Archivo de Imagen: ", ls_pathname, ls_filename , "jpg", ls_filtro) = 0 THEN RETURN

p_foto.picturename = ls_pathname
ls_cod_alumno = trim(sle_cod_alumno.text)

ll_File = FileOpen(ls_pathname, StreamMode!)
DO WHILE FileRead(ll_file,lbl_temp) > 0
lbl_data += lbl_temp
LOOP
FileClose(ll_file)

IF ll_File -1 THEN
FileRead(ll_file, lbl_data)
FileClose(ll_file)
SQLCA.AutoCommit = True
UPDATEBLOB alumnos_fotos SET foto_alumno = :lbl_data WHERE cod_alumno = :ls_cod_alumno;
SQLCA.AutoCommit = False
ELSE
messagebox('Error','Falló el FileOpen')
END IF

IF SQLCA.SQLNRows > 0 THEN
COMMIT;
messagebox('OK: ' + ls_cod_alumno,'Se guardó la foto del alumno')
ELSE
messagebox('Error','Falló el UPDATEBLOB')
END IF
FileClose(ll_file)

4. En el evento clicked de cb_ver_foto, copiar el codigo:

Blob lb_imagen
STRING ls_cod_alumno
ls_cod_alumno = trim(sle_cod_alumno.text)

SELECTBLOB foto_alumno INTO :lb_imagen FROM alumnos_fotos WHERE cod_alumno = :ls_cod_alumno ;

p_foto.SetPicture(lb_imagen)

5. Ejecutar y probar:
escribimos el codigo '01' en sle_cod_alumno, le damos click en cb_cargar_foto y seleccionamos el archivo que
se va a guardar en la DB. Repetimos este paso para los demas codigos '02' y '03'. Luego, probamos el boton cb_ver_foto, para cada codigo.


al ejecutar me muestra este error :"" fallo el updateblob"

agradeceria bastante su apoyo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder