Bug do RecordCount ????

Quando voce da um First, o dataset move o ponteiro para o primeiro
registro, registro a registro, 
Quando voce da um Last, o dataset move se para o ultimo registro,
registro a registro.
É esse o comportamento que voce quer ali....

Bem, mas voce sabia que ir do primeiro ao ultimo registro pode ser bem
oneroso neh....imagine
Com uns 1000 ate vai, 100000, registros (mestre detalhe), vai demorar um
bocado...(nem todos os clientes gostam de esperar).

Outro. Pelo que sei o recordcount não tem problemas, o que acontece
quando voce da um Open, é que ele traz apenas os registros necessários
para os componentes dataaware (normamente 1 registro) a não ser que voce
tenha um dbgrid, onde ele vai trazer (fetch (se não me engano)) de
registros suficientes para preencher o dbgrid...e contando do primeiro
ao ultimo registro (visivel no dbgrid) vai ser a quantidade do count.

Se voce quer outra solucao para saber quantos registros vem, eu sugiro
utilizar um FetchAll. Embora não sei te responder se e melhor ou pior
(acho que e melhor pois não movimenta registro a registro) alem de ficar
mais elegante

Sobre o seu problema Real....voce poderia nos passar o codigo da
procedure PEGA_ITENSPEDIDO porque aqui ta parecendo correto.

Atenc.
Elazar


-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Elton
Enviada em: quinta-feira, 22 de junho de 2006 08:14
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] duplica itens


bom , me disserem que o open; last first, eh pra corrigir o bug do
recordcount, vou testar sem.

Abraços

Elton Adriano Pering
Brusque - Santa Catarina

  ----- Original Message ----- 
  From: Eduardo Silva dos Santos 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, June 21, 2006 9:14 PM
  Subject: Re: [delphi-br] duplica itens


  with TQuickReportPedido.Create(self) do
  try
     with IBQueryPedidos do
     begin
       Database:= Self.EIBDatabase;
       Transaction:= Self.EIBTransaction;
       SQL.CLEAR;
       SQL.Add('select * from PEGA_PEDIDOS WHERE NUMPED = :NUMPED');
       ParamByName('NUMPED').AsInteger := strToInt(TypeEditPedido.Text);
       Open;
       Last; //  pra que fazer isso??? nao precisa..
       First;  //  pra que fazer isso??? nao precisa..
     end;
     {configuracoes}
     with IBQueryItensPedidos do
     begin
       Database:= Self.EIBDatabase;
       Transaction:= Self.EIBTransaction;
       SQL.CLEAR;
       SQL.Add('select * from PEGA_ITENSPEDIDO(:NUMPED)');
        // ta faltando um where nesse SQL.......
       ParamByName('NUMPED').AsInteger := strToInt(TypeEditPedido.Text);
       Open;
       Last; // nao precisa fazer isso
       First; // nao precisa fazer isso
     end;
     Preview;
  finally
     free;
  end;




  Em 21/06/06, Elton <[EMAIL PROTECTED]> escreveu:
  >
  > SEGUINTE :
  >
  > Temos um relatorio de pedidos.
  >
  > Ao visulizar o pedido ,(quickreport), as de forma aleartória aparece
os
  > itens do pedido duplicado.
  >
  > Vejam se conseguem ver alguma coisa errada na montagem :
  >
  >
  >
//----------------------------------------------------------------------
------------------------------------------------------------------------
--------------------------
  > with TQuickReportPedido.Create(self) do
  > try
  >    with IBQueryPedidos do
  >    begin
  >      Database:= Self.EIBDatabase;
  >      Transaction:= Self.EIBTransaction;
  >      SQL.CLEAR;
  >      SQL.Add('select * from PEGA_PEDIDOS WHERE NUMPED = :NUMPED');
  >      ParamByName('NUMPED').AsInteger :=
strToInt(TypeEditPedido.Text);
  >      Open;
  >      Last;
  >      First;
  >    end;
  >    {configuracoes}
  >    with IBQueryItensPedidos do
  >    begin
  >      Database:= Self.EIBDatabase;
  >      Transaction:= Self.EIBTransaction;
  >      SQL.CLEAR;
  >      SQL.Add('select * from PEGA_ITENSPEDIDO(:NUMPED)');
  >      ParamByName('NUMPED').AsInteger :=
strToInt(TypeEditPedido.Text);
  >      Open;
  >      Last;
  >      First;
  >    end;
  >    Preview;
  > finally
  >    free;
  > end;
  >
  >
  >
//----------------------------------------------------------------------
------------------------------------------------------------------------
--------------------------
  >
  > aguardo alguma sugestão .
  > Obrigado
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  >
  >
  > --
  > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
  >
  >
  >
  > Links do Yahoo! Grupos
  >
  >
  >
  >
  >
  >
  >
  >
  >


  -- 
  Eduardo Silva dos Santos
  DRD Sistemas.
  (27) 3218-4201
  MSN: [EMAIL PROTECTED]
  Site: http://www.drdsistemas.com/


  [As partes desta mensagem que não continham texto foram removidas]

   

[As partes desta mensagem que não continham texto foram removidas]

 


                
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 



-- 
<<<<< 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]
 
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