Total de registros

Delphi

11/05/2004

Aí pessoal,

Seguinte,

Criei um banco de dados ACCESS com uma tabela de clientes. No menu principal do programa eu coloque um Label que exibirá o número de registros no banco de dados, tabela clientes. Como farei isso?

OBS: Estou usando o ADO para fazer a conexão com a tabela

Abraços


Redoctober

Redoctober

Curtidas 0

Melhor post

Rômulo Barros

Rômulo Barros

11/05/2004

Query.Close;
Query.sql.clear;
Query.sql.add(´select * from clientes´);
query.open;
label.caption := IntToStr(Query.recordcount);



GOSTEI 1

Mais Respostas

Fatrix

Fatrix

11/05/2004

Dica retirada do Deephi 1.3
Inclua na seção uses: DbiProcs Os componentes TTable e TQuery e TADOTable possuem a propriedade RecordCount que indicam a quantidade de registros da tabela. No entanto esta propriedade é dependente de filtros, ou seja, se tivermos uma tabela com dez registros com campo ´Codigo´ de 1 a 10 e aplicarmos o filtro mostrado a seguir, a propriedade RecordCount retornará 5 e não 10. Table1.Filter := ´Codigo <= 5´; Table1.Filtered := true; Se quizermos obter a quantidade total de registros, independentemente de filtros, devemos usar uma API do BDE conforme abaixo: var Total: integer; begin Check(DbiGetRecordCount(Table1.Handle, Total)); ShowMessage(´Total de registros: ´ + IntToStr(Total)); end; Observações: Para testar o exemplo acima, o Table1 precisa estar aberto.



GOSTEI 0
Redoctober

Redoctober

11/05/2004

Query.Close; Query.sql.clear; Query.sql.add(´select * from clientes´); query.open; label.caption := IntToStr(Query.recordcount);



Meu formulario principal chama-se form1, como eu faria para esse código rodar assim que o form1 for aberto e além disso ficar executando toda a rotina em tempo real

Abracos


GOSTEI 0
Thematrix:reloaded

Thematrix:reloaded

11/05/2004

Use o componente TTimer, no evento OnTimer vc executa sua rotina.


GOSTEI 0
Vinicius2k

Vinicius2k

11/05/2004

Meu formulario principal chama-se form1, como eu faria para esse código rodar assim que o form1 for aberto e além disso ficar executando toda a rotina em tempo real Abracos


Não é uma crítica... só uma dica... mas vc já analizou o impacto de processamento e acesso ao disco da execução dessa rotina na sua aplicação via onTimer?
A não ser q vc queira apenas atualizar periodicamente com um intervalo de timer razoável... se for de poucos segundos vc estará comprometendo muito o desempenho...
T+


GOSTEI 0
Thematrix:reloaded

Thematrix:reloaded

11/05/2004

Para Vinicius2K:

Concordo com vc, mas faltou uma coisa na sua dica, que outra opção nosso colega teria para resolver o problema proposto?


GOSTEI 0
Redoctober

Redoctober

11/05/2004

Para Vinicius2K: Concordo com vc, mas faltou uma coisa na sua dica, que outra opção nosso colega teria para resolver o problema proposto?


Poderia usar o while?


GOSTEI 0
Vinicius2k

Vinicius2k

11/05/2004

Concordo com vc, mas faltou uma coisa na sua dica, que outra opção nosso colega teria para resolver o problema proposto?


Veja bem Matrix, como disse, eu não critiquei sua sugestão... acredito que o Timer seja a única forma de fazê-lo... apenas sugeri que ele pensasse de vale a pena implementar isso, pois vai comprometer a performance... e se ele realmente precisar implementar, que procure utilizar um intervalo que não comprometa tanto...

Acho que a sugestão de código do UI tbm pode ser aperfeiçoada para diminuir um pouco o tráfego de dados... usando o COUNT e não trazendo todos os registros com o (*):
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add(´select count(CODIGO_CLIENTE) from CLIENTES´);
  Query1.Open;
  Label1.Caption:= IntToStr(Query1.FieldByName(´COUNT´).AsInteger);


T+


GOSTEI 0
Thematrix:reloaded

Thematrix:reloaded

11/05/2004

Ok!


GOSTEI 0
Fatrix

Fatrix

11/05/2004

Outra opção é usar o RXLIB, existe um componente chamado
DBStatusLabel (se encontra na paleta RXDBAware) que pode ser configurado para mostrar o total de registros.
Ele funciona assim:
1 : 5
ou seja registro 1 de 5 no total.

Eu só não sei se funciona com ADO, mas vale a pena tentar.

É isso.
Espero ter ajudado.


GOSTEI 0
Andre Couto

Andre Couto

11/05/2004

Outra opção é usar o RXLIB, existe um componente chamado
DBStatusLabel (se encontra na paleta RXDBAware) que pode ser configurado para mostrar o total de registros.
Ele funciona assim:
1 : 5
ou seja registro 1 de 5 no total.

Eu só não sei se funciona com ADO, mas vale a pena tentar.

É isso.
Espero ter ajudado.

gostaria de saber mais pois nao consegui usar o dbstatuslabel para dar a quantidade
GOSTEI 0
POSTAR