Qtde de Registros em uma determinada Tabela
:) Ola Caroa amigos Delphianos,
Bem gostaria que alguem que ja passou por esse problema possa me ajudar, abaixo vou descrever passo a passo do que preciso fazer;
1) Tenho no meu aplicativo, uma DM e outra DMBusca um formulario Principal e o FormBase.
2) Tenho um Formulario de Clientes que herda todos os componentes do
FormBase
3) No Formulario de Clientes tenho uma Label com Name LBLTotal
4) Nessa Label gostaria de mostrar ao usuario a quantidade de Registros
Existente na Tabela de Clientes.
Alguem pode me dar uma Luz de como fazer isso?
Grato pela ajuda
Perterpan
Bem gostaria que alguem que ja passou por esse problema possa me ajudar, abaixo vou descrever passo a passo do que preciso fazer;
1) Tenho no meu aplicativo, uma DM e outra DMBusca um formulario Principal e o FormBase.
2) Tenho um Formulario de Clientes que herda todos os componentes do
FormBase
3) No Formulario de Clientes tenho uma Label com Name LBLTotal
4) Nessa Label gostaria de mostrar ao usuario a quantidade de Registros
Existente na Tabela de Clientes.
Alguem pode me dar uma Luz de como fazer isso?
Grato pela ajuda
Perterpan
Peterpan
Curtidas 0
Respostas
Eniorm
20/05/2008
nao sei o banco que vc usa... mas se for firebird
SELECT COUNT(CODIGO) AS TOTAL_CLIENTES FROM SUATABELA
SELECT COUNT(CODIGO) AS TOTAL_CLIENTES FROM SUATABELA
GOSTEI 0
Rjun
20/05/2008
[b:e43fdc091f]Recordcount[/b:e43fdc091f]
GOSTEI 0
Peterpan
20/05/2008
[quote:0f812cebac=´Enio Marconcini´]nao sei o banco que vc usa... mas se for firebird
SELECT COUNT(CODIGO) AS TOTAL_CLIENTES FROM SUATABELA[/quote:0f812cebac]
Ola Enio
Eu realmente uso firebird 2.0, mas a função que me passou agora tbem não esta mostrando a quantidade de registros, segue abaixo como coloquei no form:
onde posso estar errando que não aparece a QTDE de REGISTROS na TABELA
Grato
Peterpan
SELECT COUNT(CODIGO) AS TOTAL_CLIENTES FROM SUATABELA[/quote:0f812cebac]
Ola Enio
Eu realmente uso firebird 2.0, mas a função que me passou agora tbem não esta mostrando a quantidade de registros, segue abaixo como coloquei no form:
procedure TfrmCadClientes.FormCreate(Sender: TObject); begin inherited; DM.cdsTotalClientes.Open; DM.cdsTotalClientes.Insert; LblTotal.Caption := DM.cdsTotalClientesTOTAL_CLIENTES.AsString; end;
onde posso estar errando que não aparece a QTDE de REGISTROS na TABELA
Grato
Peterpan
GOSTEI 0
Eniorm
20/05/2008
[b:026bdcf56e]Recordcount[/b:026bdcf56e]
se usar o RecordCount nao esquece de aplicar um FetchAll antes :D
senão.... rsrsrs
GOSTEI 0
Eniorm
20/05/2008
basta dar o Open, se vc aplica o Insert o dataset entra em modo de inserção, talvez seja isso.
Recomendo assim
se vc usar uma query especifica para usar o select count, basta dar um fieldbyname para retornar a quantidade
se vc já tem um query com todos os clientes, basta fazer assim
cdsTotalClientes.Open;
cdsTotalClientes.FetchAll;
SeuLabel.Caption := IntToStr(cdsTotalClientes.RecordCount);
ai sim vc tem o resultado todal.
Recomendo assim
se vc usar uma query especifica para usar o select count, basta dar um fieldbyname para retornar a quantidade
se vc já tem um query com todos os clientes, basta fazer assim
cdsTotalClientes.Open;
cdsTotalClientes.FetchAll;
SeuLabel.Caption := IntToStr(cdsTotalClientes.RecordCount);
ai sim vc tem o resultado todal.
GOSTEI 0
Peterpan
20/05/2008
[quote:1a9432e703=´Enio Marconcini´]basta dar o Open, se vc aplica o Insert o dataset entra em modo de inserção, talvez seja isso.
Recomendo assim
se vc usar uma query especifica para usar o select count, basta dar um fieldbyname para retornar a quantidade
se vc já tem um query com todos os clientes, basta fazer assim
cdsTotalClientes.Open;
cdsTotalClientes.FetchAll;
SeuLabel.Caption := IntToStr(cdsTotalClientes.RecordCount);
ai sim vc tem o resultado todal.[/quote:1a9432e703]
Enio Obrigado pela ajuda, problema Resolvido
Recomendo assim
se vc usar uma query especifica para usar o select count, basta dar um fieldbyname para retornar a quantidade
se vc já tem um query com todos os clientes, basta fazer assim
cdsTotalClientes.Open;
cdsTotalClientes.FetchAll;
SeuLabel.Caption := IntToStr(cdsTotalClientes.RecordCount);
ai sim vc tem o resultado todal.[/quote:1a9432e703]
Enio Obrigado pela ajuda, problema Resolvido
GOSTEI 0
Rjun
20/05/2008
Enio, perdoando minha ignorância, para que serve o FetchAll?
GOSTEI 0
Pestana_
20/05/2008
Enio, perdoando minha ignorância, para que serve o FetchAll?
O Enio pode falar alguma coisa a respeito, mas vou adiantar o assunto:
o IBX não faz [i:bff8f2eb42]fetch all[/i:bff8f2eb42] dos registros na query, isto é, não carrega todos os registros na memório como outros componentes de acesso, motivo que o torna além de outos com um melhor desempenho para aplicações Firebird/Interbase. Os registros serão carregados de acordo com a necessidade.
por isso que é preciso utilizar o [i:bff8f2eb42]fetch all[/i:bff8f2eb42] para saber o resultado de registros retornado!
nem todos os componentes de acesso utiliza este recurso.
flw
GOSTEI 0
Eniorm
20/05/2008
RJun, não pela ignorância, rsrsr afinal estamos aqui para aprender e compartilhar rsrsrsrs
é exatamente a explicação do Pestana
o lance do FetchAll, vc pode mesmo até testar no IBExpert ao abrir todos os dados da tabela. Só serão exibidos os que estão sendo visualizado na grade.
Dessa forma, se tiver sendo exibido 50 registros na grade, um RecordCount retornaria 50, e não o total da tabela... conforme vc vai rolando a grande isso vai mudando.
O FetchAll seria a mesma coisa que vc aplicar os seguintes comandos.
query.Last;
query.First;
é exatamente a explicação do Pestana
o lance do FetchAll, vc pode mesmo até testar no IBExpert ao abrir todos os dados da tabela. Só serão exibidos os que estão sendo visualizado na grade.
Dessa forma, se tiver sendo exibido 50 registros na grade, um RecordCount retornaria 50, e não o total da tabela... conforme vc vai rolando a grande isso vai mudando.
O FetchAll seria a mesma coisa que vc aplicar os seguintes comandos.
query.Last;
query.First;
GOSTEI 0
Pestana_
20/05/2008
[quote:e1f4bb3258=´Enio Marconcini´]Recomendo assim
se vc usar uma query especifica para usar o select count, basta dar um fieldbyname para retornar a quantidade[/quote:e1f4bb3258]
como o Enio recomenda eu tambem preferio utilizar está maneira, sendo assim, não há necessidade de trazer todos os registros para memoria somente para saber o total de registros que a query retornou.
flw.
se vc usar uma query especifica para usar o select count, basta dar um fieldbyname para retornar a quantidade[/quote:e1f4bb3258]
como o Enio recomenda eu tambem preferio utilizar está maneira, sendo assim, não há necessidade de trazer todos os registros para memoria somente para saber o total de registros que a query retornou.
flw.
GOSTEI 0
Eniorm
20/05/2008
não há necessidade de trazer todos os registros para memoria somente para saber o total de registros que a query retornou.
wana-wanga!
pois é, a dica é essa mesmo :D
imagina uma tabela toda aberta, com N-lhões registro abertos, agora multiplica isso numa rede com vários computadores fazendo isso rsrsrs
abraços
GOSTEI 0
Rjun
20/05/2008
Interessante. Eu utilizo o ADO com SQL Server e ele me traz todos os registros.
GOSTEI 0