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