[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