Como somar os dados de uma tabela e jogar num Edit???
09/12/2003
0
Uso o Delphi 5 e gostaria de saber como faço para somar os dados de uma determinada coluna de uma tabela (paradox 7) e colocar o resultado em um Edit...
Detalhe a Tabela está num Form principal e o Edit em outro Form...
Estou tentando usar um código no FormCreate do Form secundario, tá certo o q estou fazendo???
Grato pela atenção e pela paciencia...
Maluco Tubaina
Posts
09/12/2003
Agnaldo
Uso o Delphi 5 e gostaria de saber como faço para somar os dados de uma determinada coluna de uma tabela (paradox 7) e colocar o resultado em um Edit...
Detalhe a Tabela está num Form principal e o Edit em outro Form...
Estou tentando usar um código no FormCreate do Form secundario, tá certo o q estou fazendo???
Grato pela atenção e pela paciencia...[/quote:61512e0e49]
Olá.
Vc pode fazer sim sem problemas.
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.ADD(´SELECT SUM(CAMPOASERSOMADO) AS TOTAL FROM NOMEDATABELA´);
Query1.SQL.ADD(´WHERE CONDICAO´);
Query1.Open;
Formulario.Edit.text := FloatToStr(Query1.FieldByname(´VALOR´).AsFloat);
Query1.Close;
Espero ter ajudado.
09/12/2003
Maluco Tubaina
mas o codigo que vc me passou é em SQL e não deu certo, o compilador não reconheceu o ´Query1´ como comando.
e, corrija-me se tiver errado, mas se for usar um código SQL precisarei usar um componente SQL, não é?
eu queria na verdade uma coisa bem simples, acho que com um ´while is not eof do´ deve dar certo, mas eu não sei direito a sintaxe do código pra poder fazer a leitura dos campos da tabela e exibir o resultado no Edit...
em todo caso obrigado pela ajuda inicial e espero que possa me ajudar novamente...
24/12/2003
Gilson_our
procedure Tform.FormCreate(Sender: TObject);
var soma: single;
begin
soma:=0;
form.tabela.DisableControls;
try
form.tabela.first;
while not form.tabela.eof do begin
soma:= soma + form.tabelaCAMPO.value;
form.tabela.next;
end;
finally
form.tabela.EnableControls;
edit1.text:=floattostr(soma);
end;
end;
24/12/2003
Leonel_fraga
Mas tb isso vai depender da qtde. de registros da tabela né?
24/12/2003
Maicongabriel
Ficar lento fica, de qualquer forma, uma vez que se trabalha com Paradox(´banco de dados´ baseado em arquivo).
Dar Pau? Não necessariamente...
Mas é isso ai, quanto mais registros pior vai ser o desempenho!
25/12/2003
Delphox
fiz algo parecido com o seu e ficou simples...e bem mais amigavel no codigo...
Valeu!!!!!!!!
8)
25/12/2003
Fórum Vini
mas o codigo que vc me passou é em SQL e não deu certo, o compilador não reconheceu o ´Query1´ como comando.
e, corrija-me se tiver errado, mas se for usar um código SQL precisarei usar um componente SQL, não é?
eu queria na verdade uma coisa bem simples, acho que com um ´while is not eof do´ deve dar certo, mas eu não sei direito a sintaxe do código pra poder fazer a leitura dos campos da tabela e exibir o resultado no Edit...
em todo caso obrigado pela ajuda inicial e espero que possa me ajudar novamente...[/quote:a2a806e709]
Sinceramente,
acho SQL bem mais simples que um while, além de ser bem mais rápido;
para que o código do agnaldo funcione, você deve colocar uma Query, que é justamente o ´componente SQL´ que você disse.
Você pode usar esse código, que é o que o agnaldo falou, com algumas alterações:
Query1.SQL.Clear; Query1.SQL.ADD(´SELECT SUM(CAMPOASERSOMADO) AS TOTAL FROM NOMEDATABELA´); //retirei a condição. Query1.Open; Formulario.Edit.text := FloatToStr(Query1.FieldByname(´TOTAL´).AsFloat);//o nome do campo estava errado. Query1.Close;
Espero ter ajudado.
Vinicius.
Clique aqui para fazer login e interagir na Comunidade :)