Como contar registros de uma tabela
Como faço para contar quantos registros existem numa tabela?
Tentei usar o recordcount mas não funcionou. Com a tabela com 20 registros ele retornava 19 registros e mesmo quando eu exclui um registro o recordcount continuava retornando 19.
Luiz
Tentei usar o recordcount mas não funcionou. Com a tabela com 20 registros ele retornava 19 registros e mesmo quando eu exclui um registro o recordcount continuava retornando 19.
Luiz
L_carlos
Curtidas 0
Respostas
Onjahyr
11/06/2008
Dá uma olhada neste tópico, tem até um componente que faz isso (RXLib):
http://forum.clubedelphi.net/viewtopic.php?p=130058&sid=b58c78dc3220a4d6741be9fc0bf406e7
http://forum.clubedelphi.net/viewtopic.php?p=130058&sid=b58c78dc3220a4d6741be9fc0bf406e7
GOSTEI 0
Eniorm
11/06/2008
Tentei usar o recordcount mas não funcionou. Com a tabela com 20 registros ele retornava 19 registros e mesmo quando eu exclui um registro o recordcount continuava retornando 19.
Luiz
antes de usar o RecordCount, vc precisa fazer um Fetch na sua query, assim a contagem será exata.
vc pode fazer da seguinte forma
Query.Last; Query.First;
ou diretamente
Query.FetchAll;
GOSTEI 0
L_carlos
11/06/2008
vlw pessoal. Usei o cosdigo abaixo e funfou. Vlw.
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´select count(COD_CLIENTE) from CLIENTES´);
Query1.Open;
Label1.Caption:= IntToStr(Query1.FieldByName(´COUNT´).AsInteger);
Luiz
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´select count(COD_CLIENTE) from CLIENTES´);
Query1.Open;
Label1.Caption:= IntToStr(Query1.FieldByName(´COUNT´).AsInteger);
Luiz
GOSTEI 0
Brunodsr
11/06/2008
Ola,
A melhor forma de saber a quantidade de registros é fazer isso via SQL (select count(*) from TABELA).
Isso por que o banco de dados trabalha com paginacao, assim, indo para o primeiro e logo apos para o ultimo registro, vai demorar uma eternidade. Ja usando o comando SQL isso leva segundos.
Fica ai a dica.
Espero ter ajudado
A melhor forma de saber a quantidade de registros é fazer isso via SQL (select count(*) from TABELA).
Isso por que o banco de dados trabalha com paginacao, assim, indo para o primeiro e logo apos para o ultimo registro, vai demorar uma eternidade. Ja usando o comando SQL isso leva segundos.
Fica ai a dica.
Espero ter ajudado
GOSTEI 0
Robinhocne
11/06/2008
busca pela uma instrução sql
with IbQuery do
begin
close;
sql.clear;
sql.add(´Select max(Codigo) as ´Maximo´ From SuaTabela´);
open;
end;
IbQuery.ParamByName(´Maximo´).AsInteger := Edit1.text;
Codigo é o campo que vc quer que retorna o numero maximo que existe nele e Maximo é onde vai ficar para mostrar o resultado
e ai o IbQuery.ParamByName( ... é para que a instrução mostra no edit
with IbQuery do
begin
close;
sql.clear;
sql.add(´Select max(Codigo) as ´Maximo´ From SuaTabela´);
open;
end;
IbQuery.ParamByName(´Maximo´).AsInteger := Edit1.text;
Codigo é o campo que vc quer que retorna o numero maximo que existe nele e Maximo é onde vai ficar para mostrar o resultado
e ai o IbQuery.ParamByName( ... é para que a instrução mostra no edit
GOSTEI 0