From: | alvherre <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Walter Negro <wnegro(at)vstour(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Conversion UTF8 - WIN1252 en campos binarios ? |
Date: | 2010-05-28 14:59:41 |
Message-ID: | 1275058563-sup-6582@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Walter Negro's message of vie may 28 08:00:09 -0400 2010:
> Álvaro,
> Hice nuevas pruebas y decidí enviar el dato bytea configurado como binario.
> Según la documentación, el parámetro paramLengths sólo es tomado en
> cuenta si el dato es enviado con formato binario.
> Algunas veces la documentación puede no ser exactamente lo que ocurre
> internamente por muchas razones, así que me puse a mirar el código de la
> libpq y encontré que si el parámetro no es pasado como binario, la
> librería calcula el largo del string usando la función strlen(). Por lo
> tanto, la única forma de pasar correctamente un dato binario a un campo
> bytea, que pueda contener caracteres nulos, es pasarlo justamente como
> binario.
OK, eso es lo que sospechaba, gracias por confirmarlo.
> Así que la conclusión que saco es que los datos bytea hay que pasarlos
> configurados binario porque si no, el servidor puede hacer conversiones,
> además de ser la única forma de pasar datos binarios que contengan
> caracteres nulos.
Supongo que la otra alternativa es escapar estos datos, usando \000
donde haya caracteres nulos.
¿Has probado usar la biblioteca libpqtypes?
http://libpqtypes.esilo.com/
--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2010-05-28 15:03:17 | Re: COPY FROM |
Previous Message | Julio Cesar Rodriguez Dominguez | 2010-05-28 14:42:35 | Re: Ejecutar select dinamico |