quarta-feira, 12 de setembro de 2018

Errors in Delphi #2: [SQL Server Native Client 10.0][SQL Server]Arithmetic overflow error type varchar, value = -0.000000.


Estava numa tela onde esta tinha um DBGrid, e ao selecionar o registro dentro dele,  acontecia o seguinte erro:
[SQL Server Native Client 10.0][SQL Server]
Arithmetic overflow error type varchar, value = -0.000000.

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

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.

Na situação real do erro, o meu texto sql estava com o problema no seguinte comando: Convert(Varchar(12), A - B), onde A e B são campos do tipo float. O problema estava na subtração de A e B, pois a dízima da subtração era um número tão extenso, que dava erro.

Para corrigir o problema, fez se necessário fazer primeiramente uma conversão para o resultado ser do tipo decimal(18,2), para depois convertê - lo para string ou varchar. 

SOLUÇÃO:
CONVERT(DECIMAL(18,2), ROUND(A - B, 3, 1))

0 comentários:

Postar um comentário

# Share