Buen día, 

En Delphi/Lazarus puedes utilizar el control TImage para cargar la imagen y 
luego extraer los metadatos (bytes) y así enviar a la BD.

Saludos

-----Original Message-----
From: "José Fermín Francisco Ferreras" <josefermi...@hotmail.com>
Sent: ‎17/‎04/‎2016 6:28 a. m.
To: "Francisco Olarte" <fola...@peoplecall.com>
Cc: "Lista PostgreSQL" <pgsql-es-ayuda@postgresql.org>
Subject: RE: [pgsql-es-ayuda] Insertar Foto en tabla y como visualizarla

Sistema Operativo: Windows 10 Home
Lenguaje: Object Pascal/Lazarus Version 1.6 conectado a la base de datos 
mediante Zeoslib 7
PostgreSQL: 9.4


ing. José Fermín Francisco Ferreras 
San Francisco de Macorís, Rep. Dom. 












> From: fola...@peoplecall.com
> Date: Sun, 17 Apr 2016 11:18:49 +0200
> Subject: Re: [pgsql-es-ayuda] Insertar Foto en tabla y como visualizarla
> To: josefermi...@hotmail.com
> CC: pgsql-es-ayuda@postgresql.org
> 
> Buenos dias:
> 
> 2016-04-17 6:48 GMT+02:00 José Fermín Francisco Ferreras
> <josefermi...@hotmail.com>:
> > Como puedo insertar una foto en una tabla en postgres mediante comando:
> > CREATE TABLE esquema.documento
> > (
> > numero_documento serial NOT NULL,
> > fecha_documento date NOT NULL,
> > nombre_cliente integer NOT NULL,
> > foto_documento bytea NOT NULL,
> > );
> > Me pregunto si se insertara de esta manera:
> > insert into esquema.documento(fecha_documento, nombre_cliente,foto) values
> > ('2016-04-17','Juan Perez','c:\foto.jpg');
> 
> Desde luego, asi no. Tienes que leer en el cliente la foto de alguna
> manera y ponersela en alguna sintaxis que se entienda, hay varias en
> el manual. El como depende sobre todo de que aplicacion estes usando
> para manejarla (p.e., si estas usando psql tienes pocas alternativas
> aparte de ponerla como una constante ).
> 
> P.e. Un jpg cualquiera:
> 
> $ od -t x1 -tc redacted_filename.JPG | head
> 0000000 ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 02 58
> 377 330 377 340 \0 020 J F I F \0 001 001 001 002 X
> 
> puede describirse como una constante bytea
> E'\\Xffd8ffe000104a464946000101010258...'
> 
> Dependiendo de tu entorno hay muchas formas de construirla, p.e.
> 
> $ head -c16 Documents/Boda\ y\ abuelos.JPG | perl -e "\$q=qq('); "'
> undef $/; print "E$q\\\\x",unpack("H*",scalar(<>)),"$q\n"'
> E'\\xffd8ffe000104a464946000101010258'
> 
> ( Parece mas de lo que es por lo dificil que es meter un script de
> perl que use ' y " y \ en la linea de comando del bash, probablemente
> en un archivo te quede solo:
> 
> #!/usr/bin/perl
> undef $/; # Slurp whole stdin in one go.
> print "E'\\\\x",unpack("H*",scalar(<>)),"'\n"'
> 
> > Y como se puede visualizar el registro con su imagen??
> 
> Pues como al reves, consigues el byte a y lo pasas a binario y se lo
> das a la rutina / programa.
> 
> > Alguien me puede ayudar??
> 
> Seguro, pero deberias empezar por decir mucho mas de lo que pones,
> como que lenguage/sistema operativo/entorno estas usando ( parece
> windows por el C:\, con lo que yo no mucho, pero hay mucho experto de
> windows suelto por aqui ) ( porque p.e. lo que te dije fallara casi
> seguro en windows por el tema del binmode aunque tuvieras perl y head
> ).
> 
> Un saludo.
> Francisco Olarte.
> 
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a