Re: Dudas sobre Almacenamiento de imagenes en PostgreSQL

From: Carlos Alberto Márquez Rey <carlos_marquez_rey(at)yahoo(dot)com>
To: Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, Juan Manuel Fernandez <jmfernandez(at)unlu(dot)edu(dot)ar>
Subject: Re: Dudas sobre Almacenamiento de imagenes en PostgreSQL
Date: 2008-04-30 15:10:02
Message-ID: 888934.77428.qm@web56311.mail.re3.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

<hr size=1><br><font face="Verdana" size="-2">Yahoo! Deportes Beta<br>¡No te pierdas lo último sobre el torneo clausura 2008!<br> Entérate aquí http://deportes.yahoo.com</font>

Attachment Content-Type Size
unknown_filename text/html 5.8 KB

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Elizalde 2008-04-30 15:46:13 Consumo de memoria
Previous Message Gabriel Hermes Colina Zambra 2008-04-30 15:00:12 Re: Transacciones en PG