Localizar e selecionar linha do DBGrid
como faço para localizar uma informação em uma determinada coluna do DBGrid e selecionar a linha que está o valor?
Mas quero localizar os valores na propria DBGrid e não no DataSet. O motivo é que utilizei o metodo Locate e enquanto a tabela é varrida o cursor fica piscando e causando umpouco de refresh na tela.
Mas quero localizar os valores na propria DBGrid e não no DataSet. O motivo é que utilizei o metodo Locate e enquanto a tabela é varrida o cursor fica piscando e causando umpouco de refresh na tela.
Raserafim
Curtidas 0
Respostas
Bon Jovi
27/02/2005
Tente com DisableControls:
ClientDataSet1.DisableControls; try ClientDataSet1.Locate(´x´, ´x´, []); finally ClientDataSet1.EnableControls; end;
GOSTEI 0
Massuda
27/02/2005
... O motivo é que utilizei o metodo Locate e enquanto a tabela é varrida o cursor fica piscando e causando umpouco de refresh na tela.
Já experimentou usar os métodos DisableControls/EnableControls do dataset que alimenta o grid para evitar que o conteúdo do grid seja atualizado durante o Locate do dataset?GOSTEI 0
Raserafim
27/02/2005
DisableControls e EnableControls não resolveu o meu problema. pois tenho uma outra consulta que recebe um novo parâmetro sempre que esta consulta muda de registro. Então o método locate está percorrendo toda a tabela o que faz disparar este evento em cada linha.
Agora estou também com um outro questionamento que pode até ajudar a resolver o problema: o método locate pega o índice caso tenha. A coluna que estou usando tem índice pois é uma chave primária, portanto uma pesquisa com índices não deveria percorer registro por registro, certo? mas estou usando o firebird (e o componente de acesso MDO) e se não estou enganado o Locate é um método da BDE certo? será que isso está fazendo com que não utilize o índice?
Qual outro método de busca pode utilizar meus índices?
Agora estou também com um outro questionamento que pode até ajudar a resolver o problema: o método locate pega o índice caso tenha. A coluna que estou usando tem índice pois é uma chave primária, portanto uma pesquisa com índices não deveria percorer registro por registro, certo? mas estou usando o firebird (e o componente de acesso MDO) e se não estou enganado o Locate é um método da BDE certo? será que isso está fazendo com que não utilize o índice?
Qual outro método de busca pode utilizar meus índices?
GOSTEI 0