Isso mesmo Osvaldo... estava procurando alguma configuração com a palavra
"Escape" (acho que por isso não encontrei). Tudo funciona perfeitamente
agora, e já vou colocar em produção.

Muito obrigado.

-- 
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil


2009/7/31 Osvaldo Kussama <[email protected]>

> 2009/7/31 Tiago Adami <[email protected]>:
> > Olá, André.
> >
> > Para isso eu teria que modificar o programa e realizer diversos
> "replaces"
> > antes de mandá-lo para o banco de dados - e os usuários que abrem os
> > chamados dificilmente vão se preocupar em digitar duas barras. A questão
> é
> > justamente se existe um meio mais "automático" através do driver ODBC ou
> de
> > alguma configuração no banco para realizar esta conversão.
> >
> > De qualquer forma, obrigado pela dica.
> >
> > --
> > Tiago J. Adami
> > Dois Vizinhos - Paraná - Brasil
> >
> >
> > 2009/7/31 Andre Fernandes <[email protected]>
> >>
> >> Boa tarde, Tiago,
> >>
> >> Tente trocar os caracteres de escape '\' por duas barras seguidas cada
> >> '\\'. Assim não deverá ocorrer mais problemas.
> >>
> >>
> >>
> >> 2009/7/31 Tiago Adami <[email protected]>
> >>>
> >>> Caros colegas, existe alguma forma de tratar pelo PostgreSQL a gravação
> >>> de caracteres de escape?
> >>>
> >>> O que está acontecendo é o seguinte: minha aplicação tem um campo do
> tipo
> >>> TEXT que recebe a descrição de um chamado de cliente, uma solicitação
> >>> qualquer. Às vezes acontece de ser registrado um caminho de diretórios
> do
> >>> Windows, como por exemplo:
> >>>
> >>> "C:\Windows\System32"
> >>> "D:\PostgreSQL\8.2"
> >>> etc.
> >>>
> >>> Só que no banco de dados a barra invertida não está sendo gravada:
> >>>
> >>> "C:WindowsSystem32"
> >>> "D:PostgreSQL8.2"
> >>>
> >>> E em alguns casos o próximo caractere junto com a barra invertida é
> >>> substituído por um caractere "especial".
> >>>
> >>> Estou procurando a dias na documentação do PostgreSQL e do driver ODBC
> >>> para ele, mas não encontro nada que possa fazer com que o caractere
> barra
> >>> invertida seja reconhecido como tal. Se eu precisar tratar na aplicação
> e
> >>> colocar E'\\' terei que re-escrever praticamente todas as rotinas do
> >>> sistema...
> >>>
>
>
> Veja este parâmetro de configuração:
> standard_conforming_strings
>
> http://www.postgresql.org/docs/current/interactive/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS
>
> bdteste=# SET standard_conforming_strings=on;
> SET
> bdteste=# SELECT E'C:\Windows\System32';
>     ?column?
> -------------------
>  C:WindowsSystem32
> (1 registro)
>
> bdteste=# SELECT 'C:\Windows\System32';
>      ?column?
> ---------------------
>  C:\Windows\System32
> (1 registro)
>
> ===========
>
> bdteste=# SET standard_conforming_strings=off;
> SET
> bdteste=# SELECT E'C:\Windows\System32';
>     ?column?
> -------------------
>  C:WindowsSystem32
> (1 registro)
>
> bdteste=# SELECT 'C:\Windows\System32';
> AVISO:  uso de escape fora do padrão em cadeia de caracteres
> LINE 1: SELECT 'C:\Windows\System32';
>               ^
> HINT:  Utilize a sintaxe de escape de cadeia de caracteres para
> escapes, i.e., E'\r\n'.
>     ?column?
> -------------------
>  C:WindowsSystem32
> (1 registro)
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a