Hola a Todos Yo uso Power Builder, no he encontrado funciones para transformar datos a bytea. Si hay algún programador en PB en esta lista y conoce estas funciones por favor le pido que me las diga. He usado lo_object Paga Updatear hago lo siguiente: select into arch lo_unlink(blb_archivo2) from pai_tab_entrevistas_archivo where cod_entidad = $1 and cod_entrevista = $2; update pai_tab_entrevistas_archivo set blb_archivo2 = lo_import($5) where cod_entidad = $1 and cod_entrevista = $2; EL $5 es la ruta desde donde carga el archivo Para leer hago lo siguiente: select into sn case blb_archivo2 is null when true then 'S' else 'N' end from pai_tab_entrevistas_archivo where cod_entidad = $1 and cod_entrevista = $2; if sn = 'S' then return 'No Existe el Archivo en la BD'; else select into arch lo_export(blb_archivo2, $5) from pai_tab_entrevistas_archivo where cod_entidad = $1 and cod_entrevista = $2; return 'S'; end if; EL $5 es la ruta donde bajara el archivo, luego el PB se encarga de leerla desde el disco. No me parece muy eficiente, me gustaria poder carga el archivo desde la tabla y no de un archivo tal como lo estoy haciendo. Si alguien tuviera alguna idea, aunque quiza debiera preguntar esto en una lista de PB. Juan sobre lo que me dices que si borro el registro, se borrar el archivo dentro del campo, entiendo que eso ocurre cuando usas bytea. Cuando usas lo_object, ocurre lo mismo?, me estoy asegurando usando lo_unlink *********************************************************** Carlos Márquez *********************************************************** --- El lun 28-abr-08, Juan Manuel Fernandez <jmfernandez@unlu.edu.ar> escribió: De: Juan Manuel Fernandez <jmfernandez@unlu.edu.ar> Asunto: Re: [pgsql-es-ayuda] Dudas sobre Almacenamiento de imagenes en PostgreSQL A: carlos_marquez_rey@yahoo.com Fecha: lunes, 28 abril, 2008, 3:07 pm El día 28 de abril de 2008 13:08, Carlos Alberto Márquez Rey <carlos_marquez_rey@yahoo.com> escribió: > Hola a todos Hola Carlos! > Espero me puedan ayudar Y yo espero poder ayudarte :P! > me encuentro en la tarea de guardar imágenes en una tabla de mi BD. > He estado buscando que funciones y que tipo de datos usar. > > Encontre que hay 2 tipos que se pueden usar: bytea y oid (lo_objects) Yo personalmente utilizo bytea que lo que hace es (bien casero lo mio) representar al archivo a través de una sequencia de bytes, que se alojan en "alguna parte" (para seguir con mi terminología tan precisa :P) de la BD física. > Que funciones se pueden usar con el typo bytea o de que forma se carga y > descarga las imagenes. Como yo lo trabajo, lo que hago es manejar este tipo de datos como los demás data-types en las operaciones básicas (update, insert, delete) y utilizar las funciones de la herramienta en la que desarrollo la aplicación (en este momento PHP) para la carga y descarga de los archivos, y la verdad, se comporta muy bien, no se vuelve mas pesado de lo que podriamos esperar. > Leyendo algo de la documentación de lo_objects que encuentro por internet, > se dice que el objeto se guarda en "algún lugar" de la BD y que en la tabla > donde se declara el OID se guarda una referencia a esa localización, En el caso de bytea guarda la "secuencia de bytes" que representan el archivo directamente... > Si borro el registro de la tabla, que sucede con la imagen? Se borra, asi de simple... :P la verdad no representa mayor complejidad trabajar con este data-type en PostgreSQL 8.3.1 que es el que estoy usando... > Espero me puedan ayudar Espero haberte ayudado.... > Muchas Gracias de antemano De nada! > Carlos Márquez Saludos, Juan |