[firebase-br] RES: Firebird 4.0 - Erro no comando sql utilizando somatória "SUM"

Carlos H. Cantu listas em warmboot.com.br
Segunda Julho 25 10:21:49 -03 2022


Isso não é bug e o problema não é no Firebird, mas sim no aplicativo (componente de
acesso) que está retornando o erro pra você, pois ele não está reconhecendo os
novos tipos de dados de 128 bits usados no Firebird 4. Há poucos dias teve 
mensagens aqui na lista sobre esse mesmo assunto.

PS: Você pode usar o parâmetro DataTypeCompatibility no firebird.conf para fazer com 
que o FB 4 simule o comportamento da versão 3.0 ou 2.5. Sugiro que você leia meu 
guia de migração para o Firebird 4.


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

ORdOvl> Conseguimos descobrir que existe um "bug" na versão 4.0 do Firebird, não é
ORdOvl> possível usar o comando sql de somatória "sum" sem utilizar o CAST para
ORdOvl> especificar o tipo de dados, o que, não é obrigatório nas versões anteriores
ORdOvl> do Firebird e nem em outros bancos de dados.
ORdOvl> Desta forma se for usado o comando SELECT SUM(VALOR) FROM TABELA vai dar
ORdOvl> erro no Firebird 4.0, só funciona assim:  SELECT SUM(cast(VALOR as numeric))
ORdOvl> FROM TABELA.

ORdOvl> O problema é que temos cerca de 2.000 programas em nosso sistema, é um
ORdOvl> trabalho insano verificar todos que usam o comando de somatória, se alguém
ORdOvl> souber de outra solução mais prática favor avisar.

ORdOvl> Grato.

ORdOvl> Odir Rodrigues de Oliveira
ORdOvl> Clipp-net Informática
ORdOvl> Fone: +55 16 3307-7369
ORdOvl> Cel: +55 16 98137-2103
ORdOvl> Site: www.clippnet.com.br

ORdOvl> -----Mensagem original-----
ORdOvl> De: lista <lista-bounces em firebase.com.br> Em nome de Odir Rodrigues de
ORdOvl> Oliveira via lista
ORdOvl> Enviada em: sexta-feira, 22 de julho de 2022 16:29
ORdOvl> Para: 'FireBase' <lista em firebase.com.br>; 'Carlos H. Cantu'
ORdOvl> <listas em warmboot.com.br>
ORdOvl> Cc: Odir Rodrigues de Oliveira <odir em clippnet.com.br>
ORdOvl> Assunto: [firebase-br] Firebird 4.0 - Erro no comando sql CASE WHEN

ORdOvl> Estamos fazendo os primeiros testes no Firebird 4.0 e ao executar o comando
ORdOvl> sql abaixo que utilizamos normalmente na versão 2.5 e 3.0.7, está retornando
ORdOvl> o seguinte erro no nosso programa:
ORdOvl>  [ODBC Firebird Driver]not yet implemented

ORdOvl> Executando o mesmo comando sql no IbExpert retorna:
ORdOvl> An error was found in the application program input parameters for the SQL
ORdOvl> statement.
ORdOvl> Incorrect values within SQLDA structure.
ORdOvl> ----------------------------------------------------------------------------
ORdOvl> ---------
ORdOvl> SQLCODE: -804
ORdOvl> SQLSTATE: HY000
ORdOvl> GDSCODE: 335544713

ORdOvl> Comando SQL:
ORdOvl> select sum(case when EntradaSaida='E' THEN QUANTIDADE else -QUANTIDADE end)
ORdOvl> as mSaldo from CE_Movimento where Empresa=1 and Filial=1 and Produto='1' and
ORdOvl> DEPOSITO=1 and DataMovimento<='07/22/2022'

ORdOvl> Alguém saberia informar o que pode ser este problema?

ORdOvl> Odir Rodrigues de Oliveira
ORdOvl> Clipp-net Informática
ORdOvl> Fone: +55 16 3307-7369
ORdOvl> Cel: +55 16 98137-2103
ORdOvl> Site: www.clippnet.com.br




Mais detalhes sobre a lista de discussão lista