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