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



Yahoo! Deportes Beta
¡No te pierdas lo último sobre el torneo clausura 2008!
Entérate aquí http://deportes.yahoo.com