Fórum Locate trava #44866
15/06/2004
0
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
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
Curtir tópico
+ 0
Responder
Posts
15/06/2004
Afarias
|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+
|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+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)