Problemas na grid, com o Scroll e Atualização
08/12/2005
0
Olá Pessoal...
venho aki pedir ajuda de vcs...
tenho uma grid comum ligada a uma query(Trabalho com Delphi 7, Zeos e PostgreSql), essa query com aproximadamente 48 campos de uma tabela... onde 6 desses campos são códigos do tipo int e são chave estrangeira de outras tabelas....
para esses 6 campos criei campos lookup para exibir informações como a descrição do campo que estava em outra tabela e coloquei nessa grid, para navegar pelo grid tah ok porém quando faço um scroll na grid ele fica muito lento.
Uso um componente..Key Navigator que controla essa navegação pela grid e nele tem o código
por favor analise e vejam se podem me ajuda nesse meu problema com a grid....por quando faço o scrool eu fecho e abro a query...
quando tem um ou dois campos lookup ele roda legal..mais acima de 3 ele fica lento....
tentei trazer os campos na query por sql porém também ficou lento..
por favor..analisem e vejam se podem me ajudar
Agradeço desde já
venho aki pedir ajuda de vcs...
tenho uma grid comum ligada a uma query(Trabalho com Delphi 7, Zeos e PostgreSql), essa query com aproximadamente 48 campos de uma tabela... onde 6 desses campos são códigos do tipo int e são chave estrangeira de outras tabelas....
para esses 6 campos criei campos lookup para exibir informações como a descrição do campo que estava em outra tabela e coloquei nessa grid, para navegar pelo grid tah ok porém quando faço um scroll na grid ele fica muito lento.
Uso um componente..Key Navigator que controla essa navegação pela grid e nele tem o código
procedure TFFrotaTerc.KnFrtTrcKeyPress(Sender: TObject; Key: Word; var Action: TEvNavAction); if (Key = VK_DOWN) and (offset < qQtd.FieldByName(´qtd´).AsInteger-limite+1) and (qFrtTrc.RecNo = limite) then begin Inc(offset); AtualizaqFrtTrc; qFrtTrc.Last; end; if (Key = VK_UP) and (offset > 0) and (qFrtTrc.RecNo = 1) then begin Dec(offset); AtualizaqFrtTrc; qFrtTrc.First; end; procedure TFFrotaTerc.AtualizaqFrtTrc; begin qFrtTrc.Close; qFrtTrc.ParamByName(´offset´).AsInteger := offset; qFrtTrc.Open; end; procedure TFFrotaTerc.qFrtTrcAfterOpen(DataSet: TDataSet); begin qQtd.Close; qQtd.SQL.Clear; qQtd.SQL.Add(´select count(*) as qtd from frttrc´); qQtd.Open; end;
por favor analise e vejam se podem me ajuda nesse meu problema com a grid....por quando faço o scrool eu fecho e abro a query...
quando tem um ou dois campos lookup ele roda legal..mais acima de 3 ele fica lento....
tentei trazer os campos na query por sql porém também ficou lento..
por favor..analisem e vejam se podem me ajudar
Agradeço desde já
Thiago Coleti
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)