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

Odir Rodrigues de Oliveira odir em clippnet.com.br
Terça Julho 26 14:25:40 -03 2022


O problema ocorre não só nos nossos programas, mas também na última versão
PAGA do IBEXPERT conforme foi relatado em nosso e-mail.
Usando o DataTypeCompatibility = 3.0 no Firebird.conf solucionou o problema.

Obrigado.

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

-----Mensagem original-----
De: lista <lista-bounces em firebase.com.br> Em nome de Carlos H. Cantu via
lista
Enviada em: segunda-feira, 25 de julho de 2022 10:22
Para: FireBase <lista em firebase.com.br>
Cc: Carlos H. Cantu <listas em warmboot.com.br>
Assunto: Re: [firebase-br] RES: Firebird 4.0 - Erro no comando sql
utilizando somatória "SUM"

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

ORdOvl> O problema é que temos cerca de 2.000 programas em nosso 
ORdOvl> sistema, é um trabalho insano verificar todos que usam o comando 
ORdOvl> de somatória, se alguém 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 
ORdOvl> Rodrigues de Oliveira via lista Enviada em: sexta-feira, 22 de 
ORdOvl> 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 
ORdOvl> WHEN

ORdOvl> Estamos fazendo os primeiros testes no Firebird 4.0 e ao 
ORdOvl> executar o comando sql abaixo que utilizamos normalmente na 
ORdOvl> versão 2.5 e 3.0.7, está retornando 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 
ORdOvl> for the SQL statement.
ORdOvl> Incorrect values within SQLDA structure.
ORdOvl> ----------------------------------------------------------------
ORdOvl> ------------
ORdOvl> ---------
ORdOvl> SQLCODE: -804
ORdOvl> SQLSTATE: HY000
ORdOvl> GDSCODE: 335544713

ORdOvl> Comando SQL:
ORdOvl> select sum(case when EntradaSaida='E' THEN QUANTIDADE else 
ORdOvl> -QUANTIDADE end) as mSaldo from CE_Movimento where Empresa=1 and 
ORdOvl> 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