Pesquisa mais rápida

Delphi

11/10/2003

Tenho uma tabela feita no interbase e esta tabela possui uns 4000 registros.
Estou sentindo que a pesquisa através do Método Locate está um pouco lenta.
Pesquisar usando SQL é mais rápido, mas como uso dbEdits preciso fazer com que o ponteiro da tabela se movimente.

Há uma maneira de fazer a pesquisa diretamente na tabela ser mais rápida?

PS: Usar a pesquisa com uma Query é inapropriado para o meu caso.


Ricardo Barbosa

Ricardo Barbosa

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

11/10/2003

Ricardo,
Locate é mesmo ´mortal´ em tabelas um pouco maiores... não quero te desanimar, mas a tendência é piorar... se vc jah testou com SQL não preciso nem dizer que é melhor, porém vc disse que é inapropriado para o seu caso, pq vc precisa de movimento no ponteiro...
que tal usar Query -> DataSetProvider -> ClientDataSet -> DataSource -> DBEdit ?
vc terá o movimento de que necessita... essa tem sido a solução mais aplicada para ´driblar´ o ´Unidirecional´ das Queries...

espero ter ajudado...


GOSTEI 0
Ildefonso

Ildefonso

11/10/2003

Olá, Ricardo.

Costumo usar a propriedade Filter do DataSet...
  MyQuery.Filter := ´[Descricao] LIKE "Impressora*"´;

A propriedade Filtered fica False, assim, o próximo FindFirst encontra a primeira ocorrência da condição, mas, na verdade, não esconde/filtra nada... apenas desloca até o registro coincidente.
Ah... eu uso o ADO. Talvez o * curinga da expressão seja diferente para o InteBase.

Bom trabalho. 8)


GOSTEI 0
POSTAR