[firebase-br] Compatibilidade de Dados - Firebird 2.5 x 4.0

Carlos H. Cantu listas em warmboot.com.br
Quarta Julho 20 10:45:45 -03 2022


E o IBExpert utiliza uma versão modificada dos componentes FreeIB :)

Atualize a versão do IBExpert para uma que seja compatível com os novos tipos de 
dados do Firebird 4 que provavelmente irá resolver sue problema, pelo menos no 
IBExpert... já nas suas aplicações, vai depender dos seus componentes de acesso.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

VDvl> ------------------------------------------------------------------------
VDvl> /Cordialmente Valdir Dill /Bom dia, Não estou fazendo conexão via
VDvl> componente. O erro ocorre é no IbExpert. Não sei se entendi muito bem
VDvl> Cantu. Pelo que entendi de sua resposta, no Firebird 4.0 não poderei ter
VDvl> um campo do tipo numeric(12,2) e trazê-lo da forma pura quando usado em
VDvl> função SUM, ou seja, sempre que fazer o cast para somar o valor de campos
VDvl> desse tipo? /Cordialmente Valdir Dill /

VDvl> O problema não é o tipo do dado do campo, e sim o fato de que no Firebird 4 o
VDvl> SUM vai retornar um tipo "maior" (128 bits) do que o do campo somado, o que faz
VDvl> total sentido se você pensar na possibilidade de que o somatório poderia não
VDvl> "caber" no tipo original.

VDvl> Seu componente de acesso aparentemente não reconhece o tipo de dado retornado
VDvl> pelo SUM nesses casos, por isso a necessidade do cast funciona ou do
VDvl> DataTypeCompatibility, mas isso não impedirá que você tenha problemas com
VDvl> overflow.

VDvl> []s
VDvl> Carlos H. Cantu
VDvl> eBook Guia de Migração para o FB 4 -www.firebase.com.br/guiafb4.php
VDvl> www.FireBase.com.br  -www.firebirdnews.org  - blog.firebase.com.br

VDvl>> Boa noite,

VDvl>> Estamos migrando de Firebird 2.5 para 4.0 e estamos tendo o seguinte erro:
VDvl>> Executando o SELECT SUM(VALOR)) SALDODEVEDOR FROM CONTASRECEBER, no
VDvl>> Firebird 4.0 não funciona mais. Dá o erro: "Unknown SQL Data type (32752)"

VDvl>> Só funciona assim:
VDvl>> SELECT SUM(CAST(VALOR AS FLOAT)) SALDODEVEDOR FROM CONTASRECEBER
VDvl>> Ou seja, precisa fazer um cast.

VDvl>> Obs.: o campo VALOR é do tipo numeric(12,2). Dialeto 3.

VDvl>> Pelo que andei lendo, me parece que há uma incompatibilidade de tipos de dados do Firebird anterior 2.5.
VDvl>> Tanto é que se eu mudar a linha #DataTypeCompatibility do firebird.conf
VDvl>> para DataTypeCompatibility = 2.5, aí não dá erro, mesmo sem fazer o cast.
VDvl>> Então, é realmente problema de compatiblidade.

VDvl>> A questão é: o tipo numeric(12,2) criado no Firebird 2.5 não deveria ser
VDvl>> totalmente compatível no Firebird 4.0?

VDvl>> Obrigado!

VDvl>> ______________________________________________
VDvl>> FireBase-BR (www.firebase.com.br) - Hospedado emwww.locador.com.br
VDvl>> Para saber como gerenciar/excluir seu cadastro na lista, use:
VDvl>>http://www.firebase.com.br/fb/artigo.php?id=1107
VDvl>> Para consultar mensagens antigas:http://www.firebase.com.br/pesquisa_lista.html

VDvl> ______________________________________________
VDvl> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
VDvl> Para saber como gerenciar/excluir seu cadastro na lista, use:
VDvl> http://www.firebase.com.br/fb/artigo.php?id=1107
VDvl> Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html




Mais detalhes sobre a lista de discussão lista