Fórum Problema com soma SQL #217254

28/02/2004

0

Olá Pessoal! alguem pode ajudar?

Seguinte:

Tenho um campo (dbedit2) onde eu pego o total acrescentado em um outro campo (dbedit1) usando esse codigo SQL

Query1.Close;
Query1.SQL.Clear;
query1.SQL.Text := ´Select Sum(dbedit1) dbedit2 From tabela´;
query1.Prepare;
query1.Open;
query1.Refresh;
dbEdit2.Field.AsFloat := Query1.FieldByName(´dbedit2´).AsFloat;

Em um certo dbedit4 eu tenho um valor geral
Em um outro dbedit3 eu tenho o resultado do dbedit2 - dbedit4

Ate aqui esta funcinando tudo muito bem, Ate que :cry:tive que excluir um valor, o que aconteceu! esse valor excluido continuou sendo acrescentado ao dbedit3,

Esse e o codigo que eu uso pra receber o resultado da subtração no dbedit3
[color=red:8242e02cb6]dbedit3.text:=floattostr(tabela[´dbedit4´] - floattostr(tabela[´dbedit2´]));[/color:8242e02cb6]

Sera se deu pra entender :lol:


Wagner

Wagner

Responder

Posts

28/02/2004

Ariovaldo

Wagner aparentemente sua sql esta correta o que esta faltando é você commitar a Transação quando exclui o registro. pois não esta atualizando a tabela, verifica se vc esta commitando a transação.


Responder

Gostei + 0

29/02/2004

Wagner

Colega! :lol: Desculpe-me sou iniciante estou indo passo-a-passo atraves da ajuda do pessoal aqui do forum, inclusive esse codigo foi uma dica passado, se puder pode ser um pouco mais claro? e detalhista

´esta faltando é você commitar a Transação quando exclui o registro.´????
´verifica se vc esta commitando a transação.´?????

Obrigado


Responder

Gostei + 0

29/02/2004

Ariovaldo

Ok Wagner só para ficar claro também sou iniciante más já passei por este problema, vamos lá

quando vc exclui o registro vc deve estar fazendo isso..
Nome da Tabela.delete ou
Nome da query.delete ou até mesmo via comando SQL Resumindo
após o comando que vc exclui o Registro vc tem que colocar
Nome da tabela ou query.CommitUpdates
se o banco for paradox
se for Firebird
Nome da transação.commitRetanning;

Espero que te ajude

se não der certo informe qual banco vc esta usando

Blz


Responder

Gostei + 0

29/02/2004

Wagner

Ok, Mais estou meio perdido em um detalhe, os valores ainda continuam errados como faço para atualizalo?


Responder

Gostei + 0

29/02/2004

Ariovaldo

Wagner se for possível executa o mesmo sql da aplicação direto no banco e verifica se o resultado é o mesmo da aplicação, se for igual é porque quando vc deleta um registro do Banco o mesmo sai apenas logicamente para sair fisico é obrigatório dar Commit, agora se o resultado for diferente o problema esta na SQL, por favor coloca o Bloco de comando que vc deleta o Registro e também o Sql que vc efetua a soma.


Responder

Gostei + 0

29/02/2004

Wagner

Da um erro, ´não esta no modo uperdate ou coisa assim´


Responder

Gostei + 0

29/02/2004

Ariovaldo

dá para vc colocar o código para analisar?


Responder

Gostei + 0

29/02/2004

Wagner

Ok Wagner só para ficar claro também sou iniciante más já passei por este problema, vamos lá quando vc exclui o registro vc deve estar fazendo isso.. Nome da Tabela.delete ou Nome da query.delete ou até mesmo via comando SQL Resumindo após o comando que vc exclui o Registro vc tem que colocar Nome da tabela ou query.CommitUpdates se o banco for paradox se for Firebird Nome da transação.commitRetanning; Espero que te ajude se não der certo informe qual banco vc esta usando Blz


Dai eu Fiz assim

var
save:integer;
begin
save:=application.messagebox(´Tem certeza que deseja excluir esse registro?´,´Confirmação´,mb_yesno+mb_IconQuestion);
if save = idyes then
begin
tabela.Delete;
tabela.CommitUpdates;
application.messagebox(´Registro excluido com sucesso´,´Informação´,mb_ok+mb_iconinformation);
end
else
application.messagebox(´Exclusão do registro foi cancelada´,´Informação´,mb_ok+mb_iconinformation);
end;


Responder

Gostei + 0

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

Aceitar