tenho uma tabela temporia q crio no banco com o
nome temp+Identidicacao do usuario
esta tabela consistem em todas as parcelas q um
documento de contas a pagar em dividido
executo este codigo para verificações e
posteriormente calcular a ultima parcela para
cada parcela q o usuario modificar, o erro eh o
seguinte qndo faço o update do valor para poder
soma-lo, retorna um erro somente ao sair de uma
linha para outra do grid o erro eh o seguinte: 

Error while posting updates.

sugestoes?

G_PARCELA = DBGrid
Parcelas = Edit
Total = TRxCalcEdit

o código:

procedure
TF_CONTASPAGAR.TB_TEMPVALORChange(Sender:
TField);
begin

     If (TB_TEMPVALOR.Value <= 0) Then
     Begin

          //PodeCalcular := False;
          Informa('O Valor de cada Parcela deve
ser maior que Zero.');
          If G_PARCELAS.CanFocus Then
G_PARCELAS.SetFocus;
          keybd_event(VK_RETURN,0,0,0);
          TB_TEMPVALOR.Value :=
RoundTo(Total.Value/StrToInt(Parcelas.Text),-2);

     End Else
     Begin

        With Qr_Grava do
        Begin

           Close;
            Sql.Clear;
            Sql.Add('Select VALOR From
Temp'+IntToStr(FrmPrincipal.WCOD_USUARIO));
            Sql.Add('WHERE PARCELA <=
'+Chr(39)+IntToStr(TB_TEMP.FieldValues['PARCELA'])+Chr(39));
            Open;

            If TB_TEMPVALOR.AsFloat <>
Qr_Grava.FieldByName('VALOR').AsFloat Then
            Begin

                Close;
                Sql.Clear;
                Sql.Add('UPDATE
temp'+IntToStr(FrmPrincipal.WCOD_USUARIO));
                Sql.Add('SET VALOR =
'+Chr(39)+TB_TEMPVALOR.AsString+Chr(39));
                Sql.Add(',VENCIMENTO =
'+Chr(39)+InverteData(StrToDate(TB_TEMPVENCIMENTO.AsString))+Chr(39));
                Sql.Add('WHERE PARCELA =
'+Chr(39)+IntToStr(TB_TEMP.FieldValues['PARCELA'])+Chr(39));
                ExecSql;

                Commit;

            End;

            Close;
            Sql.Clear;
            Sql.Add('Select SUM(VALOR) as SOMA
FROM Temp'+IntToStr(FrmPrincipal.WCOD_USUARIO));
            Sql.Add(' WHERE PARCELA <
'+Chr(39)+Parcelas.Text+Chr(39));
            Open;

        End;

        If Qr_Grava.FieldByName('SOMA').AsFloat
>= Total.Value Then
        Begin

             If
Qr_Grava.FieldByName('SOMA').AsFloat =
Total.Value Then
                  Informa('Os Valores informados
fazem com que a última Parcela seja nula, mude os
Valores ou diminua a quantidade de Parcelas.')
             Else
                  Informa('O valor da soma das
Parcelas não podem ultrapaçar o Valor Total do
Documento.');

             If G_PARCELAS.CanFocus Then
G_PARCELAS.SetFocus;
             keybd_event(VK_RETURN,0,0,0);
             TB_TEMPVALOR.Value :=
RoundTo(Total.Value/StrToInt(Parcelas.Text),-2);

        End;

     End;

{ aki entraria o codigo para calcular a ultima
parcela futuramente}

end;

=====

       Leandro...

[> Mutuka <]  



        
        
                
_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! 
http://br.acesso.yahoo.com/


-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a