Power Builder - traer una imagen en base64

   
Vista:

traer una imagen en base64

Publicado por MARCOS (64 intervenciones) el 23/07/2015 18:44:03
Buenos días queridos programadores,
tengo el siguiente problema estoy realizando una importación de un XML para guardar en la base de datos, hasta hay normal, el problema es que cuando importo las imágenes, estás vienen en formato Base64, son 4 imágenes de estas 1 imagen me la adjunta las otras 3 no estuve revisando y es por que el campo edit solo permite guardar hasta máximo 32767 entonces por eso no me la deja importar dos cosas alguien me podría dar una luz de como llamar o modificar este campo, y lo otro si tienen algún código en PB para decodificar el código para imprimirlo en un DW, agradezco la colaboración
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
Imágen de perfil de Adolfo

traer una imagen en base64

Publicado por Adolfo (70 intervenciones) el 24/07/2015 01:07:37
Si no estas utilizando un servidor nativo de PowerBuilder como SqlAnyWhere Ó ASE (que creo que es el caso) deberás de modificar el archivo Ini de tu instalación de PB, de hecho te anexo el Ini que yo utilizo, esto es porque PB cuando se conectar con un servidor como MsSQL Server por default solo almacenará 32767 para una imagen por eso debes de abrir tu archivo INI y buscar:
PBMaxBlobSize='32767'
PBMaxTextSize='32767'
y cambiarlo por
PBMaxBlobSize='2147483647'
PBMaxTextSize='32767000'
y ahora si ya podrás almacenar imagenes grandes. Yo coloco el INI en el subdirectorio donde dejo instalado mi aplicativo en la compu de mis usuarios.
Para poder almacenar una imagen que están codificadas en Base64, se hace leyendo toda la cadena codificada en Base64 y haciendo un update, para mayor explicación te anexo un proyecto que hice solo para tu duda, esta en PB 12.5.2 si no lo tienes instalado, te recomiendo que lo instales la versión 12.5 o 12.5.2 en una maquina virtual veas el código que necesites y lo apliques a tu proyecto. Para este proyecto utilice un servidor de base de datos SqlAnyWhere 11. 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
Imágen de perfil de Adolfo

traer una imagen en base64

Publicado por Adolfo (70 intervenciones) el 24/07/2015 14:56:37
Aqui esta el proyecto.
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

traer una imagen en base64

Publicado por MARCOS (64 intervenciones) el 24/07/2015 17:25:24
Hola Adolfo, primero que todo muchas gracias por tu ayuda,
le cambie al .ini esas dos lineas, aparecen en dos partes de sql server, pero igual me sigue presentando el mismo problema.
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
Imágen de perfil de Adolfo

traer una imagen en base64

Publicado por Adolfo (70 intervenciones) el 24/07/2015 18:43:34
Ya corriste mi proyecto ?
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

traer una imagen en base64

Publicado por MARCOS (64 intervenciones) el 24/07/2015 19:22:55
hola estoy mirando tu proyecto, yo tengo como base de datos postgres no existe el tipo image para crear tu tabla, en el caso mio envio el codigo base64 a la base de datos y la decodificaria cuando la imprima o la otra opcion enviarla a una carpeta predeterminada pero la verdad me da problema esto, lo otro es que veo que tu llamaste un listbox en el caso mio para importar la imagen llamo un campo de la bd y el no permite este objeto, lo otro es que el edit no me permite aun guardar mas de 32675 registros
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
Imágen de perfil de Adolfo

traer una imagen en base64

Publicado por Adolfo (70 intervenciones) el 24/07/2015 22:14:44
Dificil tu caso porque estuve revisando la documentación PostGres y no cuenta con un campo tipo Image, ¿ya intentaste con el tipo de datos bytea binary data ("byte array")?, pero aún asi tambien revise la documentación de PB y estos son los servidores a los que se conecta y que podemos definir el tamaño maximo de la imagen y como ves no viene PostGres, en conclusión te recomiendo que cambies de servidor de BD porque no veo como pueda manejar imagenes en un servidor que no almacena imagenes y lo peor es que la imagen la tienes codificada, mmmm, hubo un tiempo en que trate de trabajar con PostgreSQL y no me convenció asi que cambié a SqlAnywhere y me ha ido bien.
[WATCOM SQL]
[Sybase SQL Anywhere]
[Adaptive Server Anywhere]
[SQL Anywhere]
[Adaptive Server IQ]
[Access]
[BTRIEVE]
[DBASE]
[DB2]
[FOXBASE]
[INFORMIX]
[INGRES]
[Microsoft SQL Server]
[Netware SQL]
[ORACLE]
[PARADOX]
[SQLBase]
[Sybase SQL Server]
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

traer una imagen en base64

Publicado por MARCOS (64 intervenciones) el 25/07/2015 01:08:14
pues lo estoy guardando como un tipo de dato character varryng de 10000000 pero el problema es power builder a la hora de importarlo ya que el campo edit solo me recibe 32756
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