Varrer ClientDataSet
Pessoal,
Gostaria de saber se é possível percorrer um dbgrid sem que o usuario perceba esta operação.
Exemplo:
preciso localizar dentro de um dbgrid um registro que atenda determinada condição, irei percorrer até encontrá-lo, mas enquanto isto o usuário percebe o que esta ocorrendo.
Gostaria que isto não ocorresse. É possível?
Abraços
Rodolfo
Gostaria de saber se é possível percorrer um dbgrid sem que o usuario perceba esta operação.
Exemplo:
preciso localizar dentro de um dbgrid um registro que atenda determinada condição, irei percorrer até encontrá-lo, mas enquanto isto o usuário percebe o que esta ocorrendo.
Gostaria que isto não ocorresse. É possível?
Abraços
Rodolfo
Rodolfo.pirolo
Curtidas 0
Respostas
Marcio.theis
22/11/2006
Pode trabalhar com propriedades da query, tipo:
Os comandos devem de estar todos certos.... :lol:
qryTeste.DisableControls; qryTeste.First; while not qryTeste.Eof begin //Validações qryTeste.Next; end; qryTeste.First; qryTeste.EnableControls;
Os comandos devem de estar todos certos.... :lol:
GOSTEI 0
Rodolfo.pirolo
22/11/2006
Marcio,
Resolveu o meu problema, muito obrigado pela dica.
Abraços
Rodolfo
Resolveu o meu problema, muito obrigado pela dica.
Abraços
Rodolfo
GOSTEI 0
Marcio.theis
22/11/2006
Certo...
Valew... 8)
Valew... 8)
GOSTEI 0
Brunolspp
22/11/2006
no cas de ser um campo vc pode usar o metodo locate apos um disablecontrols
ou usar o metodo setkey, mas para este, vc deve criar um indicedinamico no cds, estou falando isso pq ja tive q lidar com uma gama de dados mto grande e fazer a operação ficar rapido, e no setkey foi a solução.. ficou mto rapido mesmo..
abração
ou usar o metodo setkey, mas para este, vc deve criar um indicedinamico no cds, estou falando isso pq ja tive q lidar com uma gama de dados mto grande e fazer a operação ficar rapido, e no setkey foi a solução.. ficou mto rapido mesmo..
abração
GOSTEI 0
Titanius
22/11/2006
Bruno, pode explicar melhor isso aí? Gostei da idéia.. :D
[]s
[]s
GOSTEI 0
Marco Salles
22/11/2006
eu acho que o set setkey em termos de velocidade , quando comparado ao FinKey , não deve trazer diferenças significativas.. Pelas biografias , o que se diz é que o primeiro fornece um tratamento de erro melhor e o segundo é mais simples de usar...
Porém os dois comparados ao metodo locate , podem trazer siginificativa melhora em termos de performace.. Ja que o método Locate , por não exigir um indice , efetua uma pesquisa sequencial e não otimizada..
Por outro lado , quando se tem um indice , o método Locate [b:a3d9602fe4]o utilizara [/b:a3d9602fe4]e a pesquisa sera mais rápida....
No fim , teoria é teoria e prática é prática
Porém os dois comparados ao metodo locate , podem trazer siginificativa melhora em termos de performace.. Ja que o método Locate , por não exigir um indice , efetua uma pesquisa sequencial e não otimizada..
Por outro lado , quando se tem um indice , o método Locate [b:a3d9602fe4]o utilizara [/b:a3d9602fe4]e a pesquisa sera mais rápida....
No fim , teoria é teoria e prática é prática
GOSTEI 0
Brunolspp
22/11/2006
o uso do setkey vc precisa somente criar um indice dinamico no cclientdataset e aplicar o findkey e passar para o c ampo o valor desejado a se achar,
no meu dia a dia ele é o mais rapido de todos os recursos.
na minha pagina de downloads no exemplo do borcon deste ano com certeza vc acha uma função para criar indices dinamicamente no clientdataset, principalmente no evento titleclick dos dbgrids.
eis o link: http://cc.borland.com/Author.aspx?ID=795118
Abração
no meu dia a dia ele é o mais rapido de todos os recursos.
na minha pagina de downloads no exemplo do borcon deste ano com certeza vc acha uma função para criar indices dinamicamente no clientdataset, principalmente no evento titleclick dos dbgrids.
eis o link: http://cc.borland.com/Author.aspx?ID=795118
Abração
GOSTEI 0
Marco Salles
22/11/2006
Bem , eu não vi nada ate hoje , que indicasse o uso do setKey seguido do FindKey... Sinceramente conhecia o setKey usado em conjunto com o GotoKey , ou reciprocamente com o métdo GotoNearest..
Assim o algoritimo seria:
Sinceramente é uma surpresa para mim o uso do SetKey com o FindKey
Assim o algoritimo seria:
DataSet.SetKey ; //inicialização do estado de pesquisa
DataSet[´Campo´]:=p a ser pesquisado //configuração do valor alvo
Dataset.gotoNearest; //iniciar o processo de pesquisa
Sinceramente é uma surpresa para mim o uso do SetKey com o FindKey
GOSTEI 0
Andrew
22/11/2006
[quote:c9b61aa92f=´Marco Salles´]Bem , eu não vi nada ate hoje , que indicasse o uso do setKey seguido do FindKey... Sinceramente conhecia o setKey usado em conjunto com o GotoKey , ou reciprocamente com o métdo GotoNearest..
Assim o algoritimo seria:
Sinceramente é uma surpresa para mim o uso do SetKey com o FindKey[/quote:c9b61aa92f]
Marco Salles, vc quer dizer que se houver um índice na tabela o LOCATE ficará masi rápido? Fica tanto quanto FindKey?
Assim o algoritimo seria:
DataSet.SetKey ; //inicialização do estado de pesquisa
DataSet[´Campo´]:=p a ser pesquisado //configuração do valor alvo
Dataset.gotoNearest; //iniciar o processo de pesquisa
Sinceramente é uma surpresa para mim o uso do SetKey com o FindKey[/quote:c9b61aa92f]
Marco Salles, vc quer dizer que se houver um índice na tabela o LOCATE ficará masi rápido? Fica tanto quanto FindKey?
GOSTEI 0
Marco Salles
22/11/2006
Marco Salles, vc quer dizer que se houver um índice na tabela o LOCATE ficará masi rápido? Fica tanto quanto FindKey?
eu quero dizer , é o que eu ja li sobre o assunto ,´é que se estiver um indice , a pesquisa usando o locate sera mais rápida quando comparada a uma pesquisa usando o proprio Locate nun campo que não é indice... Porque automaticamente o metodo Locate usara o indice
Nas biografias , pelo menos ate agora , não existe uma comparação [b:b33cfe7be6]entre campos com indice[/b:b33cfe7be6] , pesquisado pelo Locate , pelo FindKey ou pelo GotoKey usando SetKey Para Preparar , no quesito rapidez.. Vale é a prática de cada um ao se depara com eventuais situaçoes especiais.
O que todas biografias são unanimes em afirmar que a pesquisa com Locate em campos que[b:b33cfe7be6] não são indices [/b:b33cfe7be6]são mais lentas porque são feitas de modo sequencial...
GOSTEI 0