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

José Mauricio Barbisan Zottis zottissistemas em gmail.com
Segunda Julho 25 10:27:02 -03 2022


olá.
Se usar Delphi com Firedac, pode configura-lo para quando receber um tipo
de dados, converter para outro, isso em âmbito geral o por componente

Em seg., 25 de jul. de 2022 às 10:21, Carlos H. Cantu via lista <
lista em firebase.com.br> escreveu:

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