Locate trava

Firebird

15/06/2004

Olá a todos

Estou enfrentando um problema quando dou um locate em uma IBtable no Delphi 6, o sistema trava.

Já criei indices para facilitar a consulta e não resolveu.

Quando há poucos registros ele consegue buscar normalmente, mas, quando testo com a tabela cheia, aproximadamente 20.000 registros acontece o erro.

Gostaria de saber quais opções eu tenho para não utilizar um locate.

Obrigado

Junior


Fsjunior

Fsjunior

Curtidas 0

Respostas

Afarias

Afarias

15/06/2004

|Estou enfrentando um problema quando dou um locate em uma IBtable
|no Delphi 6, o sistema trava.

1) não use TABLEs com sistemas cliente/servidor (como é o caso o IB)

2) um locate fará q todos os registros sejam carregados (o mesmo q um Last ou FetchAll) -- se existem muitos registros na tabela, o sistema pode parar momentâneamente dando uma impressão de estar ´travado´


|Já criei indices para facilitar a consulta e não resolveu.

Índices nào tem qualquer efeito sobre esse tipo de operação. Índices são usados basicamente em expressões WHERE (SQL)


|Quando há poucos registros ele consegue buscar normalmente, mas,
|quando testo com a tabela cheia, aproximadamente 20.000 registros
|acontece o erro.

Como explicado acima!


|Gostaria de saber quais opções eu tenho para não utilizar um locate.

Vc pode usar o Locate mas NÃO use tables -- Substitua por Querys e, NÃO use consultas como ´select * from tabela´ visto q isso seria o mesmo q usar Tables.

Vc não precisa ter os 20000 registros carregados -- essa é a idéia em sistemas C/S. Faça uma consulta com um WHERE ´filtrando´ apenas parte dos registros e sua aplicação ficará *muito* rápida.



T+


GOSTEI 0
POSTAR