[firebase-br] Briga com CHARSET continua - FB 2.1 :(

Welkson Renny de Medeiros welkson em gmail.com
Sáb Nov 1 12:16:15 -03 2008


Pessoal,

Desculpa a quantidade de perguntas... com bancos simples foi bem rápido e 
sem problemas, mas com bancos com mais detalhes (UDF, DOMAINS, centenas de 
procedures, triggers, etc) o negócio tá sendo bem chatinho.

Fiz todos os procedimentos que o pessoal sugeriu:

* Criei um banco novo no FB 2.1 usando charset WIN1252;

* Rodei o script do banco antigo (FB 2.0.3);

* Rodei a procedure para checar o metadado (RDB$CHECK_METADATA, 
RDB$FIX_METADATA('WIN1252');

* Fiz o DATAPUMP;

Tive algumas broncas com UDF conforme citado nos emails anteriores, mas já 
está tudo resolvido... testei o sistema, relatórios, etc... tudo 
aparentemente está funcionando bem, e aparentemente mais rápido... (e ainda 
com a vantagem de poder monitorar qual query tá usando IO, CPU, etc usando o 
SINÁTICA MONITOR... muito show =).

Já estava quase pronto para iniciar a migração no servidor em produção 
quando decidi fazer mais alguns testes... um DatabaseCompare com o banco 
antigo para ver se não houve algum problema na migração da estrutura... em 
uma determinada tabela surge a seguinte mensagem:

Cannot transliterate character between character sets.
Cannot transliterate character between character sets.

Fui então no IBEXPERT, na tabela no qual o DatabaseCompare e fui vendo as 
abas... quando cheguei em "Dependencies" surge a mesma mensagem:

Cannot transliterate character between character sets.
Cannot transliterate character between character sets.

E mais esses detalhes:
select pr.rdb$procedure_name,
pr.rdb$procedure_source,
pp.rdb$parameter_name,
pp.rdb$parameter_type,
fs.rdb$field_name,
fs.rdb$field_type,
fs.rdb$field_length,
fs.rdb$field_scale,
fs.rdb$field_sub_type,
fs.rdb$segment_length,
fs.rdb$dimensions,
cr.rdb$character_set_name,
co.rdb$collation_name,
pp.rdb$parameter_number,
fs.rdb$character_length,
pp.rdb$description,
pr.rdb$description,
pp.rdb$default_source,
fs.rdb$field_precision,
pp.rdb$parameter_mechanism,
pp.rdb$field_source
from rdb$procedures pr
left join rdb$procedure_parameters pp on pp.rdb$procedure_name = 
pr.rdb$procedure_name
left join rdb$fields fs on fs.rdb$field_name = pp.rdb$field_source
left join rdb$character_sets cr on fs.rdb$character_set_id = 
cr.rdb$character_set_id
left join rdb$collations co on ((fs.rdb$collation_id = co.rdb$collation_id) 
and
(fs.rdb$character_set_id = co.rdb$character_set_id))
where pr.rdb$procedure_name = 'P_CONTABIL_REL_CFOP'
order by pp.rdb$parameter_type, pp.rdb$parameter_number

Vi na internet um faq sobre o assunto:
http://www.firebirdfaq.org/faq81/

Pergunta: se eu desistir desse WIN1252 e usar UTF-8 muda alguma coisa? terei 
algum problema?

Na aplicação uso IBO =)

-- 
Welkson Renny de Medeiros


                      Powered by ....

                                           (__)
                                        \\\'',)
                                          \/  \ ^
                                          .\._/_)

                                      www.FreeBSD.org 





Mais detalhes sobre a lista de discussão lista