Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 162 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

pessoal estou trabalhando na migração do FB 2 pro FB 5 porem apresenta o  

esta rodando no FB 2, porém quando vou rodar a mesma aplicação no FB 5 retorna o seguinte erro: erro unknown ISC error 0, fazendo alguns testes parece ser algo com o campo que retorna integer sem CAST, vcs usam cast nas consultas ? quais tipos de dados vcs usam para cada resultado?  se for necessário eu mudar todas as minhas consultas, fazer da melhor maneira possível, e ate porque, preciso continuar usando a aplicação em clientes com FB 2 até que todos os clientes estejam com o FB5 instalado, então a aplicação terá que rodar um bom tempo com as 2 versões do FB.

COUNT(DISTINCT(B.CODPRO)) QNTPRO

obrigado

Editado por felipeiw
  • Moderadores
Postado

A partir do FB 3 o COUNT retorna um BIGINT, que é um integer de 64 bits.

A mesma coisa pode acontecer com o SUM().

O que acontece é o teu componente de acesso não ter suporte a esses tipos.

A solução é colocar o cast pra integer ou numeric, só note que isso pode causar problemas caso o resultado extrapole a capacidade do tipo.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

obrigado pela resposta bigwings

uso o dbexpress então seria melhor mesmo mudar em todas as minhas consultas colocando cast

ficariam assim ?

COUNT(DISTINCT(B.CODPRO)) AS INTEGER) QNTPRO

PS eu nao consigo colocar aqui um exemplo com a palavra CAST KKK seja no COUNT ou SUM e numeric o forum bloqueia como faço para colocar ?

vc vê nessas instruções algo para melhorar ou ser diferente, pergunto isso porque é uma aplicação grande amigo, vou ter muito trabalho para mudar todas as instruções.

obrigado

  • Moderadores
  • Solution
Postado
41 minutos atrás, felipeiw disse:

PS eu nao consigo colocar aqui um exemplo com a palavra CAST KKK seja no COUNT ou SUM e numeric o forum bloqueia como faço para colocar ?

Realmente a proteção contra injection impede alguns comandos, também não consegui.

43 minutos atrás, felipeiw disse:

vc vê nessas instruções algo para melhorar ou ser diferente, pergunto isso porque é uma aplicação grande amigo, vou ter muito trabalho para mudar todas as instruções.

Você pode ativar o parâmetro "DataTypeCompatibility" no firebird.conf para a versão 2.5.

DataTypeCompatibility = 2.5

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

BigWings esse parâmetro ajudou demais, os ajustes serão menores com certeza, foi sensacional, pelos testes. ainda vou ter que colocar cast em algumas consultas, agora aproveito para fazer uma pergunta, por exemplo um sum de campo quantidade * preço, qual cast devo usar, float, numeric ? qual logica devo usar para aplicar o cast ?

muito obrigado

  • Moderadores
Postado
13 horas atrás, felipeiw disse:

por exemplo um sum de campo quantidade * preço, qual cast devo usar, float, numeric ? qual logica devo usar para aplicar o cast ?

Pra valores monetários eu costumo usar NUMERIC(18, 2) mas nesse caso eu prefiro ter o campo do valor total no banco de dados, pra não deixar o FB fazer o arredondamento.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • 3 semanas depois ...
  • Este tópico foi criado há 162 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...