Fórum Pesquisa mais rápida #187978
11/10/2003
0
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.
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
Curtir tópico
+ 0
Responder
Posts
11/10/2003
Vinicius2k
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...
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...
Responder
Gostei + 0
11/10/2003
Ildefonso
Olá, Ricardo.
Costumo usar a propriedade Filter do DataSet...
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)
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)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)