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

Valdir Dill valdiralbertod em gmail.com
Quarta Julho 20 10:33:20 -03 2022


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

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



Mais detalhes sobre a lista de discussão lista