Fórum Sql-Server Error: Arithmetic Exception , Numeric OverFlow... #60906

02/10/2009

0

Caros Amigos!

Sou Desenv. e usu D7 + DbExpress + FB-2.1

Tenho o seguinte problema:

------------E R R O --------------------------------------
Sql-Server Error: Arithmetic Exception , Numeric OverFlow,
or String Truncation
----------------------------------------------------------

Criei uma Procedure e um calculo especifico está causando um erro:

Percent Numeric(6,3);
Valor Numeric(12,2);
Total_Pneus Numeric(12,2);
Total_Vendas Numeric(12,2);

Percent = Cast((Total_Pneus/Total_Vendas*100) as Numeric(6,2));

----------------------------------
em outra parte da Procedure, este calculo funciona normal
----------------------------------
FOR SELECT SUM(coalesce(VLICMS,0)), SUM(coalesce(VALOR_ISS,0)), SUM(coalesce(VLICMSBT,0))
FROM NFSAIDA NF
WHERE NF.STCANCEL = ´F´ and NF.DTEMISSAO BetWeen :Pdtini and :Pdtfin
INTO :VLICMS, :VALOR_ISS, :VLICMSBT
DO BEGIN
End
Valor = VLICMS*-1;
percent = VLICMS/Total_Vendas*100;
Suspend;
----------------------------------

Não entedi o q esta acontecendo, pois alguns calculo são executados.

Se alpuder me ajudar, desde já meus agradecimentos.

ANT.CARLOS/SP


Ant.carlos/sp

Ant.carlos/sp

Responder

Posts

02/10/2009

Afarias

Total_Vendas é sempre diferente de ZERO? Lembre-se q divisões por zero não são aceitas.



T+


Responder

Gostei + 0

02/10/2009

Ant.carlos/sp

Bom acho q me exprei mau.

Não é na hora de calcular e sim na hora de carregar as variaveis do Banco no SimpleDataSet que o erro é apresentado.

Quando isolo aquela linha tudo funciona nomalmente, ou melhor consigo carregar as variaveis no meu Sql e rodar nomalmente.
O problema é q não consigo calcular o Percentual naquela variavel e naquela linha. Não sei o que é, pois tentei colocar uma var Valor Numeric(12,2) no
lugar, mesmo asim não aceita o calculo.

100+

ANT.CARLOS/SP


Responder

Gostei + 0

03/10/2009

Afarias

|Não é na hora de calcular e sim na hora de carregar as variaveis do Banco
|no SimpleDataSet que o erro é apresentado.

O erro apresentado é do banco, então não tem nada a ver com o q vc disse acima.

Novamente, verifique o q eu disse no post anterior. Outros motivos para o erro apresentado são:

1) usar um character set de conexão incompatível com o char set do campo/valor que está sendo lido

2) tentar atribuir a um campo ou variável valor maior q o definido (ex: um nome de 25 caracteres em um campo/var definido como varchar(20), o valor 50.000 em um campo/var Smallint, etc)


T+


Responder

Gostei + 0

10/10/2009

Ant.carlos/sp

Obrigado pela atenção! :D

Resolvi o problema, não descobri o q era, mas em um certo momento tudo começou a funcionar como se não tivesse nada.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar