[firebase-br] Problema de Charset em trigger/Sps
Adriano dos Santos Fernandes
adrianosf em uol.com.br
Seg Set 22 11:39:06 -03 2008
Eduardo,
A "regra" é "sempre use o connection charset correto quando vc for
criar/alterar/ler metadados".
Pßscoa é Páscoa inserida em WIN1252 (ou ISO8859-1, que é parecido) e
visualizada sem conversão em DOS850.
Ou vc criou a trigger pelo modo gráfico do Windows ou pelo terminal do
Linux configurado com este charset. Em ambos os casos usando NONE como
connection charset.
Adriano
Eduardo Bahiense escreveu:
> Bom dia
>
> Estou tendo problemas em bases restauradas de backups gerados no linux
> (debian) e restauradas em máquinas windows (XP sp2).
>
> Temos uma SP que gera os feriados nacionais com Páscoa, carnaval, entre
> outros e alguma triggers auto-geradas que contêm caracteres acentuados.
>
> O problema foi detectado ao se extrair o metadata pelo IBExpert e
> ocorrer erro de "Can not transliterate between character sets".
>
> Detalhes:
>
> 1. Ambas as máquinas utilizam a versão 2.1
> 2. As bases foram migradas do 2.0 por bkp/restore
> 3. Após o restore foi rodada a rotina de corrigir metadata
> 4. Dropamos todas as triggers e sp's e recriamos, na tentativa de resolver
> 5. No windows, isso resolve (dropar e recriar)
> 6. No linux, pelo ISQL, consegue-se visualizar o metadata da SP
> (RDB$PROCEDURE_SOURCE), porém, pelo IBWebAdmin, o metadata não é exibido.
> 7. No Windows também exibe normalmente, só que com caracteres errados
> ('Pßscoa') e se tentar abrir pelo IBExpert ou qualquer outra ferramenta
> adminstrativa, dá o erro citado acima.
> 8. Em ambos, a procedure executa normalmente, aplicando os caracteres
> acentuados corretamente. Acredito que a exibição de caracter acentuado
> trocado ocorra no windows por falha do terminal CMD do windows e não
> pelo ISQL em si.
> 9. Tanto no windows como no linux, um SELECT * FROM RDB$PROCEDURES
> resulta, para cada registro a mensagem:
> ==============================================================================
> RDB$PROCEDURE_BLR:
> BLOB display set to subtype 1. This BLOB: subtype = 2
> ==============================================================================
>
> É isso. Tudo funciona normal. Nas triggers, tiramos a acentuação pois
> era apenas um comentário "Trigger criada automaticamente, qualquer
> alteração será sobreescrita".
>
> O problema é extrair o metadata pelo IBExpert. Temos que lembrar de não
> incluir a SP de Feriados, se não ele pára.
>
> Se alguém puder dar uma luz, será bem-vinda.
>
>
> Abraço
>
>
> Eduardo
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista