So discordo de vc quando diz que o recordcount vai sempre retornar > 1. Em
alguns casos ele retorna -1, so nao descobri ainda quando. Alem do mais nem
sempre ele se posiciona no primeiro registro ... ele pode estar em uma
posicao inicial (-1) e realmente so buscar o registro quando vc comeca a ler
os dados ... Por que? porque algumas vezes o programador quer executar a
query apenas pra sabe se o banco existe, por exemplo ... deste modo ele
estaria buscando registros sem necessidade ... entao ele espera vc comecar a
ler os registros pra dar um fecth nos primeiros registros.
Acho que a solucao e usar isempty mesmo.

Rafael Colucci


Rafael Colucci

----- Original Message ----- 
From: "Filipe Belchior" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Tuesday, January 11, 2005 5:53 PM
Subject: [delphi-br] Re: recordcount é confiável?


>
>
> .
>
> Olá pessoal,
>
> me interessei pelo assunto pois já tive problemas com o recordcount
> tempos atrás.. e bota tempo nisso :-)
>
> seguinte, se vc deseja apenas saber se a consulta NÃO esta vazia,
> tanto o recordcount como o isempty funciona, pois o recordcount
> retorna o no. de registros "fecthados" :-D, e o primeiro registro
> sempre está "fetchado", se existir.
>
> mas, se o assunto é saber o numero de registros... através do
> recordcount, o ideal seria fecthall antes de chamar o recordcount...
> nada de Last, isso é loucura.
>
> à respeito de usar uma outra consulta com COUNT(*).. bom, acredito
> ser melhor em tempo de resposta (para saber no. de registros), mas
> a idéia de criar outra query não agrada à muitos. Eu uso hoje o
> FecthAll, mas num lembro de usar em tabelas com dezenas de milhares
> de registros, nessa situação, uma consulta paralela talvez agrade na
> performance.
>
>
> var
>   qryT: TIBQuery;
>
> ...
>
> // aconselho específicar os campos desejados, ao invés de *
>   qry1.sql.text := 'select campo1, campo2 from tab1';
>
> // nova query para consulta total de regitros
>   qryT := TIBQuery.create;
>   qryT.Assign( qry1 );
>   qryT.sql.text := 'select count(*) from tab1';
>   qryT.open;
>   qryT.tag := qryT.fields[0].asinteger;
>   qryT.close;
>
> // o primeiro registro, se exitir, será "fetchado" e recordcount 1
> __qry1.open;
>
>
>
> .
> --- Em delphi-br@yahoogrupos.com.br, Marcelo Almeida <[EMAIL PROTECTED]>
> escreveu
> > Alan escreveu:
> >
> > >esse modo que o Rodrigo falou é mais indicado do que o RecordCount,
> isso eu
> > >ouvi com o Bruno Lichot q deu uma palestra em porto alegre
> > >
> > >
> >
> > Se o que se quer é saber se o select retornou registros, como o exemplo
> > que foi passado, o melhor é usar o isempty.
> > O select count serve para informar a quantidade de registros, mas
> muitas
> > vezes precisamos saber se existe algum registro e não a quantidade
> deles.
> > Dependendo das condições do select o count pode demorar bastante.
> >
> > -- 
> > Marcelo Almeida
>
>
>
>
>
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
>  http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a