Como somar os dados de uma tabela e jogar num Edit???

09/12/2003

0

Ow, e aí blz?
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

Maluco Tubaina

Responder

Posts

09/12/2003

Agnaldo

[quote:61512e0e49=´Maluco Tubaina´]Ow, e aí blz?
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.


Responder

09/12/2003

Maluco Tubaina

Ow, valeu pela dica...
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...


Responder

24/12/2003

Gilson_our

Se vc não quiser usar o componente TQuery para inserir uma string SQL, então uma possibilidade é o código abaixo ativado depois do evento OnCreate do form:

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;


Responder

24/12/2003

Leonel_fraga

Mas se usar o while not eof... o programa não fica mais lento e a probabilidade de dar pau é maior?
Mas tb isso vai depender da qtde. de registros da tabela né?


Responder

24/12/2003

Maicongabriel

Mas se usar o while not eof... o programa não fica mais lento e a probabilidade de dar pau é maior? Mas tb isso vai depender da qtde. de registros da tabela né?


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!


Responder

25/12/2003

Delphox

8) Cara usa o SQL mesmo!!!
fiz algo parecido com o seu e ficou simples...e bem mais amigavel no codigo...
Valeu!!!!!!!!
8)


Responder

25/12/2003

Fórum Vini

[quote:a2a806e709=´Maluco Tubaina´]Ow, valeu pela dica...
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.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar