Fórum Saber se a tabela está vazia #279456
29/04/2005
0
VLW
Sérgio Gobbo
Curtir tópico
+ 0Posts
29/04/2005
Raserafim
if Query.RecordCount = 0 then showmessage(´tabela vazia´);
Gostei + 0
29/04/2005
Otto
if Query.RecordCount = 0 then showmessage(´tabela vazia´);
pra saber se esta vazia, eu napo uso mais recordcount, pq em alguns casos(bde+firebird), mesmo tendo registro o resultado é = -1
é bom usar o isEmpty
if Query.isempty then vazia
:wink:
Gostei + 0
27/03/2006
Lorde_morte.
Como resolver este problema?
function TBuscaFrame.AchouAlgo(Tabela:TDataSet): Boolean; begin RESULT:= NOT TABELA.IsEmpty; end;
A falha do IsEmpty esta matando meu FrameWork. :cry:
Gostei + 0
27/03/2006
Otto
function TBuscaFrame.AchouAlgo(Tabela:TDataSet): Boolean; begin RESULT:= NOT TABELA.IsEmpty; end;
ja tentou assim:
function TBuscaFrame.AchouAlgo(Tabela:TDataSet): Boolean; begin Tabela.FetchAll; // linha incluida RESULT:= NOT TABELA.IsEmpty; end;
:?:
Gostei + 0
27/03/2006
Martins
Tente assim:
Tabela.Close; If Tabela.IsEmpty then ShowMessage(´Tabela vazia...´) else ShowMessage(´Contem registros...´); ...
Boa sorte
Gostei + 0
27/03/2006
Nerdex
:wink:
Gostei + 0
27/03/2006
Martins
Valew complemento [b:06737e3e3b]Nexdex[/b:06737e3e3b], quanto tempo meu nobre colega, um prazer tê-lo participando desse tópico.
Fica assim então.
Tabela.Close; Tabela.First; If Tabela.IsEmpty then ShowMessage(´Tabela vazia...´) else ShowMessage(´Contem registros...´); ...
Boa sorte!!
Gostei + 0
27/03/2006
Emerson Nascimento
desculpe, mas essa informação não procede. o IsEmpty funciona estando o ponteiro no primeiro ou no último registro. Talvez tenha sido feita confusão com o Eof. Este sim necessita de estar no primeiro registro para não retornar true (a menos, é claro, que haja apenas 1 registro).
Por que [b:6a1429e8d0]não[/b:6a1429e8d0] usar RecordCount nesse caso?
Porque Recordcount irá te retornar o número de registros. Obviamente se retornar um número maior que 0 (zero) é porque há registros, porém há um custo: ele varre toda a tabela para contar o número de registros abertos. Se a tabela tiver 2000 registros, ele irá do primeiro ao último, somando até retornar 2000. isso seria necessário se você quisesse saber quantos registros há na tabela, para montar um gauge ou uma barra de progresso.
no caso de apenas querer saber se há algum registro, use IsEmpty, porque se houver ao menos um registro (seja o primeiro, ou último, ou um intermediário) a função retorna imediatamente, não precisando varrer o dataset.
Gostei + 0
27/03/2006
Emerson Nascimento
Valew complemento [b:fe28410c8f]Nexdex[/b:fe28410c8f], quanto tempo meu nobre colega, um prazer tê-lo participando desse tópico.
Fica assim então.
Tabela.Close; Tabela.First; If Tabela.IsEmpty then ShowMessage(´Tabela vazia...´) else ShowMessage(´Contem registros...´); ...
Boa sorte!![/quote:fe28410c8f]
Só uma correção no código do nosso colega Martins: você não conseguirá saber nada sobre uma tabela fechada. na verdade você deveria verificar se a tabela está aberta, e não fechá-la.
function TBuscaFrame.AchouAlgo(Tabela:TDataSet): Boolean; begin if not Tabela.Active then try Tabela.Open; except end; try result := not Tabela.IsEmpty; except result := false; end; end;
Gostei + 0
27/03/2006
Martins
Valew complemento [b:69cbe29d0e]Nexdex[/b:69cbe29d0e], quanto tempo meu nobre colega, um prazer tê-lo participando desse tópico.
Fica assim então.
Tabela.Close; Tabela.First; If Tabela.IsEmpty then ShowMessage(´Tabela vazia...´) else ShowMessage(´Contem registros...´); ...
Boa sorte!![/quote:69cbe29d0e]
Só uma correção no código do nosso colega Martins: você não conseguirá saber nada sobre uma tabela fechada. na verdade você deveria verificar se a tabela está aberta, e não fechá-la.
function TBuscaFrame.AchouAlgo(Tabela:TDataSet): Boolean; begin if not Tabela.Active then try Tabela.Open; except end; try result := not Tabela.IsEmpty; except result := false; end; end;
Valew pelo observação e correção [b:69cbe29d0e]emerson.en[/b:69cbe29d0e], foi falta de atenção, não posso saber o q tem em um armário se ele estiver fechado :wink:
[b:69cbe29d0e]
Corrigindo: [/b:69cbe29d0e][b:69cbe29d0e][color=red:69cbe29d0e]Nexdex[/color:69cbe29d0e][/b:69cbe29d0e] para [b:69cbe29d0e][color=blue:69cbe29d0e]Nerdex[/color:69cbe29d0e][/b:69cbe29d0e]
valew galera!! :D
Gostei + 0
28/03/2006
Nerdex
Concordo em gênero, número e grau - Desculpa a falha ... aí ...: 8)
Gostei + 0
29/11/2006
Facc
Concordo em gênero, número e grau - Desculpa a falha ... aí ...: 8)[/quote:dfbba0c5f3]
Revivendo o tópico...
Estou tendo problemas com [b:dfbba0c5f3]DMDados.TControleReceber.IsEmpty[/b:dfbba0c5f3]
pois minha tabela possui registros, e mesmo assim ele esta trazendo que está vazia, tentei com [b:dfbba0c5f3]DMDados.TControleReceber.RecordCount = 0[/b:dfbba0c5f3], porém tbm está trazendo valor 0 (zero). Já coloquei o [i:dfbba0c5f3][b:dfbba0c5f3]First, Refresh, Open, Close[/b:dfbba0c5f3][/i:dfbba0c5f3], mas sem resultado. O que posso fazer pra resolver?
Gostei + 0
29/11/2006
Paullsoftware
Concordo em gênero, número e grau - Desculpa a falha ... aí ...: 8)[/quote:d8fd1fd047]
Revivendo o tópico...
Estou tendo problemas com [b:d8fd1fd047]DMDados.TControleReceber.IsEmpty[/b:d8fd1fd047]
pois minha tabela possui registros, e mesmo assim ele esta trazendo que está vazia, tentei com [b:d8fd1fd047]DMDados.TControleReceber.RecordCount = 0[/b:d8fd1fd047], porém tbm está trazendo valor 0 (zero). Já coloquei o [i:d8fd1fd047][b:d8fd1fd047]First, Refresh, Open, Close[/b:d8fd1fd047][/i:d8fd1fd047], mas sem resultado. O que posso fazer pra resolver?[/quote:d8fd1fd047]
desculpe a iginorância, mais vc já tentou contar os registros olhando pra eles???
tipo coloque um dbgrid abra a tabela, dê um last depois pessa pra ver os o total de registros...
no botão faça:
tabela.open; tabela.last; if tabela.isempty then caption := ´Tabela Vazia´ else caption := inttostr(tabela.recordcount);
é fazendo testes que vamos descobrir onde estão realmente os problemas... será que vc vai ta vendo os dados e mesmo assim vai está retornando ´0´ zero!! :wink:
Gostei + 0
29/11/2006
Facc
Concordo em gênero, número e grau - Desculpa a falha ... aí ...: 8)[/quote:e9dde374b4]
Revivendo o tópico...
Estou tendo problemas com [b:e9dde374b4]DMDados.TControleReceber.IsEmpty[/b:e9dde374b4]
pois minha tabela possui registros, e mesmo assim ele esta trazendo que está vazia, tentei com [b:e9dde374b4]DMDados.TControleReceber.RecordCount = 0[/b:e9dde374b4], porém tbm está trazendo valor 0 (zero). Já coloquei o [i:e9dde374b4][b:e9dde374b4]First, Refresh, Open, Close[/b:e9dde374b4][/i:e9dde374b4], mas sem resultado. O que posso fazer pra resolver?[/quote:e9dde374b4]
desculpe a iginorância, mais vc já tentou contar os registros olhando pra eles???
tipo coloque um dbgrid abra a tabela, dê um last depois pessa pra ver os o total de registros...
no botão faça:
tabela.open; tabela.last; if tabela.isempty then caption := ´Tabela Vazia´ else caption := inttostr(tabela.recordcount);
é fazendo testes que vamos descobrir onde estão realmente os problemas... será que vc vai ta vendo os dados e mesmo assim vai está retornando ´0´ zero!! :wink:[/quote:e9dde374b4]
já contei, com o mesmo componente inclusive (em questão), tem 879 registros, porém mesmo assim está trazendo [b:e9dde374b4]recordcount = 0[/b:e9dde374b4]
Gostei + 0
29/11/2006
Facc
Concordo em gênero, número e grau - Desculpa a falha ... aí ...: 8)[/quote:168d90d82d]
Revivendo o tópico...
Estou tendo problemas com [b:168d90d82d]DMDados.TControleReceber.IsEmpty[/b:168d90d82d]
pois minha tabela possui registros, e mesmo assim ele esta trazendo que está vazia, tentei com [b:168d90d82d]DMDados.TControleReceber.RecordCount = 0[/b:168d90d82d], porém tbm está trazendo valor 0 (zero). Já coloquei o [i:168d90d82d][b:168d90d82d]First, Refresh, Open, Close[/b:168d90d82d][/i:168d90d82d], mas sem resultado. O que posso fazer pra resolver?[/quote:168d90d82d]
desculpe a iginorância, mais vc já tentou contar os registros olhando pra eles???
tipo coloque um dbgrid abra a tabela, dê um last depois pessa pra ver os o total de registros...
no botão faça:
tabela.open; tabela.last; if tabela.isempty then caption := ´Tabela Vazia´ else caption := inttostr(tabela.recordcount);
é fazendo testes que vamos descobrir onde estão realmente os problemas... será que vc vai ta vendo os dados e mesmo assim vai está retornando ´0´ zero!! :wink:[/quote:168d90d82d]
já contei, com o mesmo componente inclusive (em questão), tem 879 registros, porém mesmo assim está trazendo [b:168d90d82d]recordcount = 0[/b:168d90d82d][/quote:168d90d82d]
Resolvido. O programador que fez o sistema esqueceu de colocar as seguintes linhas antes da chamada...
RefreshQuery( DMDados.TControleReceber, [´´], [´´] ); [b]function que dá refresh na query[/b] OrdenaQuery( DMDados.TControleReceber, [´DataVecto´] ); [b]function que ordena a query com o campo que se deseja[/b] DMDados.vfiltrocontasReceber:=´REC´; DMDados.TControleReceber.Filtered:=true;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)