[firebase-br] Erro na migração para do 2.5 para o 5

Éder Monteiro do Nascimento eder.monteiro em fator.tec.br
Terça Agosto 6 09:25:48 -03 2024


Muito obrigado pelo retorno.
Já setamos o charset na conexão. Mas fazemos por meio de um framework,
Vou passar isso para o responsável para verificar se pode ser algo na
montagem da conexão.
Muito obrigado.





*Éder Monteiro do Nascimento*

Analista de Sistemas Full Stack

Fator Sistemas & Consultoria

e-mail: *eder.monteiro em fator.tec.br <eder.monteiro em fator.tec.br>*

http://fatorsistemas.com.br


Em ter., 6 de ago. de 2024 às 09:05, Carlos H. Cantu via lista <
lista em firebase.com.br> escreveu:

> Fiz um teste aqui e só consegui reproduzir o problema mencionado por você
> quando
> eu conecto na base sem definir um charset para a conexão, por exemplo, no
> isql,
> conectando sem falar que charset quero usar:
>
> isql employee
> SQL> set sqlda_display on;
> SQL> select lpad('123',5,'0') from rdb$database;
>
> INPUT message field count: 0
>
> OUTPUT message field count: 1
> 01: sqltype: 448 VARYING scale: 0 subtype: 0 len: 5 charset: 0 NONE <----
>   :  name: LPAD  alias: LPAD
>   : table:   owner:
>
> LPAD
> ======
> 00123
>
>
> Conectando com o charset ISO8859_1:
>
>
> isql -ch ISO8859_1 employee
> Database: employee, User: SYSDBA
> SQL> set sqlda_display on;
> SQL> select lpad('123',5,'0') from rdb$database;
>
> INPUT message field count: 0
>
> OUTPUT message field count: 1
> 01: sqltype: 448 VARYING scale: 0 subtype: 0 len: 5 charset: 21 ISO8859_1
> <----
>   :  name: LPAD  alias: LPAD
>   : table:   owner:
>
> LPAD
> ======
> 00123
>
>
> Ou seja, aparentemente você não está especificando o charset da sua
> conexão,
> fazendo com que a função retorne usando o charset NONE.
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 5 - www.firebase.com.br/guiafb5.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> ÉMdNvl> Bom dia.
> ÉMdNvl> Estamos realizando a migração de um sistema do  2.5 para o 5.
> ÉMdNvl> Fizemos os procedimentos orientados pelo mestre Cantu, e antes de
> migrar,
> ÉMdNvl> já fizemos diversas correções que poderiam gerar problemas no 5.
> ÉMdNvl> Contudo fui pego num ponto que não estou sabendo como buscar a
> solução no
> ÉMdNvl> google por não saber exatamente o que procurar.
>
> ÉMdNvl> A situação é que no 2.5 usamos muito (muito mesmo) o seguinte
> comando.
> ÉMdNvl> LPAD(ID_MES,2,'0') para completar o campo com '0' à esquerda, e ele
> ÉMdNvl> funciona perfeitamente. O campo ID_MES é um BIG_INT
> ÉMdNvl> No fire 5, ele continua funcionando, contudo, gera um problema.
>
> ÉMdNvl> 2.5 LPAD(ID_MES,2,'0') = '01' charset *ISO8859_1 *collation PT_BR
> ÉMdNvl> 5   LPAD(ID_MES,2,'0') = '01' charset *None *collation PT_BR
> ÉMdNvl> O problema, nosso sistema trabalha todo em Charset ISO8859_1
> Collation
> ÉMdNvl> PT_BR, e temos diversos lugares, que a comparação é busca é por
> esse campo.
> ÉMdNvl> Só que aí sobe o erro:
>
> ÉMdNvl> Erro de collation PT_br For character set none
>
> ÉMdNvl> Por estar comparando entre charset diferentes.
> ÉMdNvl> Já iniciei o *ajuste* fazendo o processo LPAD(CAST(ID_MES AS
> ÉMdNvl> VARCHAR(2)),2,'0'), isso retorna Charset ISO8859_1.
> ÉMdNvl> Contudo, temos algumas centenas de consultas, relatórios, e outras
> coisas
> ÉMdNvl> mais, que essa situação está impactando. Atrasando nossa migração.
> ÉMdNvl> Tem algum lugar que possa de configurar para que ele entenda isso
> como
> ÉMdNvl> antes?
>
>
>
>
>
> ÉMdNvl> *Éder Monteiro do Nascimento*
>
> ÉMdNvl> Analista de Sistemas Full Stack
>
> ÉMdNvl> Fator Sistemas & Consultoria
>
> ÉMdNvl> e-mail: *eder.monteiro em fator.tec.br <eder.monteiro em fator.tec.br>*
>
> ÉMdNvl> http://fatorsistemas.com.br
> ÉMdNvl> ______________________________________________
> ÉMdNvl> FireBase-BR (www.firebase.com.br) - Hospedado em
> www.locador.com.br
> ÉMdNvl> Para saber como gerenciar/excluir seu cadastro na lista, use:
> ÉMdNvl> http://www.firebase.com.br/fb/artigo.php?id=1107
> ÉMdNvl> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>


Mais detalhes sobre a lista de discussão lista