segunda-feira, 30 de setembro de 2019

Errors in Delphi #3: Arithmetic overflow error type varchar, value = -155555555.000000

Estava numa tela onde tinha um DBGrid, e ao pesquisar em massa por vários registros, 
acontecia o seguinte erro:

Arithmetic overflow error type varchar, value = -155555555.000000

A mensagem do erro é bem nítida, a conversão de determinado valor para string ou varchar, está relatando o erro acima.

1ª Dica: Se o fluxo que estiver testando tiver muitas querys em modo cascata, teste query por query, as que não estiverem notificando a seguinte mensagem, elimine - a do fluxo, pois ela não será o problema.

2ª Dica: Quando descobrir, através da 1ª dica qual é a query que está ocasionando o problema, pegue o texto sql, e execute dentro do banco de dados, passando os parâmetros de entrada.

3ª Dica: Pode ser qualquer função ou procedure, que esteja vinculada no processo em cascata das suas querys. 

Para corrigir o problema:

Na situação real do erro, foi um função que era disparada no oncalcfields de uma determinada query. Dentro da função, o retorno de seu valor era muito extenso, e o limite do campo de retorno da função era menor, foi só ajustar o tamanho do campo para pegar um valor maior. Por exemplo, o tipo do campo era VARCHAR de tamanho 10, VARCHAR(10), foi só alterar o tamanho do campo para tamanho 60, VARCHAR(60).

PROBLEMA:
DECLARE @RETORNO VARCHAR(10) 

SOLUÇÃO:
DECLARE @RETORNO VARCHAR(60)

0 comentários:

Postar um comentário

# Share