[firebase-br] Res: Re:  Problema na Stored Procedure
    Jáber S. C. Lima 	 
    cpd em lekagi.com.br
       
    Seg Jun 15 17:27:16 -03 2009
    
    
  
Olá Renato... 
Cara fiquei até com vergonha agora...rs 
Verifiquei que o tamanho do meu campo parcela na TBL_PAGAR é VARCHAR(6) e
gravo as parcelas no campo da seguinte forma: 100/100, onde indico o numero
da parcela/total de parcelas. 
Vou alterar mas com certeza isso deve resolver meu problema.. 
Obrigado pela força.. 
Abraço... 
 
-------Mensagem original------- 
 
De: Renato Deggau 
Data: 15/06/2009 18:19:34 
Para: FireBase 
Assunto: Re: [firebase-br] Problema na Stored Procedure 
 
Na tabela tbl_pagar, qual o tamanho do campo parcela? Suporta 100? 
 
Renato Deggau 
 
2009/6/15 Jáber S. C. Lima <cpd em lekagi.com.br> 
 
> Olá pessoal. 
> 
> 
> 
> A seguinte Stored Procedure serve para gravar as contas a pagar que são 
> parceladas no meu sistema. 
> 
> Ontem descobri um erro e não consegui resolver... Quando se lança uma
conta 
> a pagar em até 99 parcelas a SP funciona 100%. Quando as parcelas são
acima 
> de 99 ele gera a seguinte mensagem de erro: 
> 
> 
> 
> {Arithmetic overflow or division by zero has occurred. 
> 
> arithmetic exception, numeric overflow, or string truncation. 
> 
> At procedure 'SET_GRAVAPARCELAS' line: 32, col: 9.} 
> 
> 
> 
> Segue abaixo a DDL da SP. 
> 
> 
> 
> Grato a todos que puder ajudar.. 
> 
> 
> 
> Jáber S. C. Lima - Rondonópolis/MT 
> 
> 
> 
> SET TERM ^ ; 
> 
> 
> 
> create or alter procedure SET_GRAVAPARCELAS ( 
> 
> EMPRESA integer, 
> 
> NRDOC varchar(40), 
> 
> CODFORNECE integer, 
> 
> NOMEFORNECE varchar(80), 
> 
> CODGRUPOCENTCUST integer, 
> 
> CODCENTCUST integer, 
> 
> DTCADASTRO date, 
> 
> DTDOCTO date, 
> 
> DTVENCTO date, 
> 
> VALOR D_MONEY not null, 
> 
> DESCTO D_PERCENT not null, 
> 
> TOTAL D_MONEY not null, 
> 
> PARCELA varchar(6), 
> 
> CONDFUNCCAD integer, 
> 
> QUITADO char(1), 
> 
> OBSERVACOES varchar(80)) 
> 
> as 
> 
> declare variable WDIA numeric(2,0); 
> 
> declare variable WMES numeric(2,0); 
> 
> declare variable WANO numeric(2,0); 
> 
> declare variable WPARCELAS numeric(6,0); 
> 
> declare variable WDATA date; 
> 
> begin 
> 
> select extract(day from :dtvencto) from rdb$database into :wDia; 
> 
> select extract(month from :dtvencto) from rdb$database into :wMes; 
> 
> select extract(year from :dtvencto) from rdb$database into :wAno ; 
> 
> wParcelas = 1; 
> 
> while (wParcelas <= cast(:parcela as integer)) do 
> 
> begin 
> 
> wData = cast(cast(wMes as varchar(2)) || '/' || cast(wDia as 
> varchar(2)) || '/' || cast(wAno as varchar(4)) as date); /*Aqui fica a 
> linha 
> 32 */ 
> 
> insert into tbl_pagar (EMPRESA, NRDOC, CODFORNECE, NOMEFORNECE, 
> CODGRUPOCENTCUST, CODCENTCUST, DTCADASTRO, DTDOCTO, DTVENCTO, VALOR, 
> DESCTO, 
> TOTAL, PARCELA, CONDFUNCCAD, QUITADO, OBSERVACOES) 
> 
> VALUES (:EMPRESA,:NRDOC,:CODFORNECE,:NOMEFORNECE 
> :CODGRUPOCENTCUST,:CODCENTCUST,:DTCADASTRO,:DTDOCTO,:WData,:VALOR,:DESCTO 
> :TOTAL, :WPARCELAS||'/'||:parcela,:CONDFUNCCAD,:QUITADO,:OBSERVACOES); 
> 
> wParcelas = wParcelas + 1; 
> 
> wMes = wMes + 1; 
> 
> if (wMes >12) then 
> 
> begin 
> 
> wMes = 1; 
> 
> wAno = wAno + 1; 
> 
> end 
> 
> end 
> 
> end^ 
> 
> 
> 
> SET TERM ; ^ 
> 
> ______________________________________________ 
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107 
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa 
> 
______________________________________________ 
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www
firebase.com.br/fb/artigo.php?id=1107 
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
    
    
Mais detalhes sobre a lista de discussão lista