Problema com soma SQL
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:
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
Curtidas 0
Respostas
Ariovaldo
28/02/2004
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.
GOSTEI 0
Wagner
28/02/2004
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
´esta faltando é você commitar a Transação quando exclui o registro.´????
´verifica se vc esta commitando a transação.´?????
Obrigado
GOSTEI 0
Ariovaldo
28/02/2004
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
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
GOSTEI 0
Wagner
28/02/2004
Ok, Mais estou meio perdido em um detalhe, os valores ainda continuam errados como faço para atualizalo?
GOSTEI 0
Ariovaldo
28/02/2004
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.
GOSTEI 0
Wagner
28/02/2004
Da um erro, ´não esta no modo uperdate ou coisa assim´
GOSTEI 0
Ariovaldo
28/02/2004
dá para vc colocar o código para analisar?
GOSTEI 0
Wagner
28/02/2004
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;
GOSTEI 0