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

Carlos H. Cantu listas em warmboot.com.br
Terça Julho 19 21:46:00 -03 2022


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

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

[]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> 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 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