[firebase-br] Problema de Charset em trigger/Sps

Eduardo Bahiense eduardo em icontroller.com.br
Seg Set 22 12:23:32 -03 2008


Oi Adriano

Obrigado pela rápida resposta.

Sim, não tinha atentado a esse detalhe, infelizmente, mas rodei po 
script e coloquei na primeira linha SET NAMES ISO8859_1.

Vou testar conectando com charset explicito e posto aqui o resultado.

Obrigado

Eduardo

Adriano dos Santos Fernandes escreveu:
> 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
>>
> 
> 
> ______________________________________________
> 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