Power Builder - Ayuda con imagen BMP en BD

   
Vista:

Ayuda con imagen BMP en BD

Publicado por Kevin (7 intervenciones) el 08/04/2013 14:10:40
Hola a toda la comunidad.

Me he repasado casi todos lo temas que traten acerca de recuperación de imágenes y presentación de las mismas en un DW en esta estupenda página, hasta ahora no he encontrado solución alguna a mi problema. El mismo trata de lo siguiente:

Supongamos que tengo una tabla con 2 campos: codigo e imagen. La primera es del tipo char(02) y la segunda es long binary. Por cuestiones ajenas a mi, dentro del campo imagen se han almacenado imágenes de extensión BMP. Lo que deseo hacer es un DW tipo grid que me presente tanto el campo codigo como imagen, es decir, códigos con sus respectivas imágenes que están también almacenadas en la BD. He intentado hacerlo de varias maneras:

1. Recuperar la data en un blob y luego crear un archivo temporal en el disco duro el cual tiene que ser asignado a la ruta de un campo computado bitmap dentro del DW. No he tenido éxito de esta forma porque no tengo manera de referenciarlo a una imagen de una fila en particular. Tampoco me sale incluyendo un control Image dentro del DW.

2. Leí por ahí que también se puede usar un control dentro del DW de nombre Database Binary/Text Large Object . He intentado usarlo pero no he tenido éxito alguno.

¿Hay alguien por ahí con una solución? Sé que se puede usar el método del campo varchar + ruta_de_la_imagen, pero el inconveniente es de que tengo esos BMP almacenados en la BD y no una ruta en el disco duro. Lo que quiero hacer es presentar esas imágenes en un DW junto a su respectivo id o código. ¿Cómo hacerlo? ¿Alguna idea?

Muchas gracias de antemano por la ayuda prestada.
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

Ayuda con imagen BMP en BD

Publicado por Frank P. michel1n0@outlook.com (50 intervenciones) el 20/04/2013 15:41:26
Bueno, quizas esta solución que encontramos te ayude... creo que va con tu primera opción, solo tendiras que modificar una que otra cosa para que trabaje con tu extensión BMP

http://www.lawebdelprogramador.com/foros/Power_Builder/1374719-Consulta_de_Conexion_a_SQL_2005_con_PB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda con imagen BMP en BD

Publicado por Kevin (7 intervenciones) el 20/04/2013 18:30:41
Hola Frank, gracias por responder. Hice lo que me comentaste pero me sale un error:

http://i36.tinypic.com/345mx6g.jpg

El código que tengo en el evento Open de la ventana que contiene el DW en el que quiero se muestren las imágenes, es este:

Integer filas, a, li_FileNum, temp
String cod_imagen, ruta, ls_nombre
Blob b_imagen

dw_1.settransobject(SQLCA)
dw_1.retrieve()

sle_codigo.setfocus( )

ruta = "C:\Users\Kevin\Desktop\"

filas = dw_1.rowcount( )

For a = 1 to filas

cod_imagen = dw_1.getitemstring (a , "codigo" )
ls_nombre = cod_imagen + ".bmp"

SELECTBLOB img INTO :b_imagen
FROM imagen
WHERE codigo =:cod_imagen;

li_FileNum = FileOpen(ruta + ls_nombre, StreamMode!, Write!, Shared!, Replace!)
FileWriteEx(li_FileNum, b_imagen)
FileClose(li_FileNum)

dw_1.object.foto[a] = ruta + ls_nombre

Next


El error se da en esta línea: dw_1.object.foto[a] = ruta + ls_nombre donde "foto" es el nombre que tiene mi objeto en el DW (es un picture). Tu solución ¿con qué objeto lo implementaste dentro del DW?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con imagen BMP en BD

Publicado por Frank P. (50 intervenciones) el 22/04/2013 15:12:58
tal parece que no me expliqué bien en esta parte:

"hago retrieve al DW donde solo hago el select de los datos incluyendo el campo FOTO varchar(255) donde en realidad no guardo nada, esta ahí por defecto del sistema que tenemos, y bueno a este campo le colocamos la propiedad Display as Picture"

en nuestro caso, el sistema que estabamos modificando contenía un campo foto de tipo varchar(255), nosotros usamos ese campo por decirlo así como un nexo para al momento de darle la ruta y el nombre de la imagen la mostraria como imagen es por tal que le activamos la opción "Display as Picture", pero en realidad ahi no se guarda nada, simplemente lo utilizamos en ejecución para mostrar la imagen; espero esta vez haberme explicado bien y suerte!!

Saludos,

Frank P.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con imagen BMP en BD

Publicado por Kevin (7 intervenciones) el 26/04/2013 14:35:22
Sí, eso es lo que implementé: tuve que hacer otra columna en la base de datos para almacenar "temporalmente" la ruta mediante el Varchar. Todo corre OK, pero, cuando doy click sobre la imagen se muestra la ruta en el disco duro. ¿Hay alguna manera de impedir aquello?

Muchas gracias y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con imagen BMP en BD

Publicado por Frank P. (50 intervenciones) el 06/05/2013 20:06:16
bueno, en nuestro caso no nos dio esa complicación, lástima que no puedo ayudarte más debido a que no poseo la fuente, esa que te pase es la única que pude quedarme, espero puedas solucionar tu problema...

Saludos,

Frank P.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con imagen BMP en BD

Publicado por Willy (2 intervenciones) el 30/07/2016 06:35:10
Chochera, No uses el : create large / binay Usa el : inkPictureObject

Saludos desde Perú,

Willy OC.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar