Total de registros
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
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
Curtidas 0
Melhor post
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
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
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
11/05/2004
Use o componente TTimer, no evento OnTimer vc executa sua rotina.
GOSTEI 0
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
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?
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
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
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
11/05/2004
Ok!
GOSTEI 0
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.
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
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
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