Fórum Sql-Server Error: Arithmetic Exception , Numeric OverFlow... #60906
02/10/2009
0
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
Curtir tópico
+ 0Posts
02/10/2009
Afarias
T+
Gostei + 0
02/10/2009
Ant.carlos/sp
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
Gostei + 0
03/10/2009
Afarias
|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+
Gostei + 0
10/10/2009
Ant.carlos/sp
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)