GotoBookMark ou Findkey
Uso ClientDataSets para ligar os componentes da interface com o banco de dados.
Tenho utilizado muitas rotinas que movem o ponteiro dos registros de um ponto determinado e, depois dessas rotinas executadas, preciso voltar àquele ponto.
Numa análise que fiz hoje no meu sistema, me deparei com duas rotinas diferentes que fazem a mesma coisa. Na primeira crio um TBookMark e depois dou um ClientDataSet.GotoBookMark(...). Na outra, gravo o valor do índice em uma variável de depois executo um ClientDataSet.FindKey([...]).
Ambos funcionam legal!
Alguém teria uma tese sobre qual desses procedimentos é o melhor e por que?
Obrigado.
Tenho utilizado muitas rotinas que movem o ponteiro dos registros de um ponto determinado e, depois dessas rotinas executadas, preciso voltar àquele ponto.
Numa análise que fiz hoje no meu sistema, me deparei com duas rotinas diferentes que fazem a mesma coisa. Na primeira crio um TBookMark e depois dou um ClientDataSet.GotoBookMark(...). Na outra, gravo o valor do índice em uma variável de depois executo um ClientDataSet.FindKey([...]).
Ambos funcionam legal!
Alguém teria uma tese sobre qual desses procedimentos é o melhor e por que?
Obrigado.
Armindo
Curtidas 0
Respostas
Raserafim
25/09/2006
boa pergunta essa.
prefiro utilizar o bookmark, e acho que ele deve ser mais rápido, já que o modo de funcionamento dele é como se esse batesse uma foto da posição do cursos no momento, tendo então a chace de reposicionar o cursos em que precise fazer uma varedura. no entanto este método pode disparar uma exceção caso o dataset tenha sofrido alterações sérias.
já o findkey, como o próprio nome já diz, ele vai procurar um valor, ou seja, vai ter que varrer uma lista (apesar de ser bastante rápido já que se trata de um índice).
bom, mas assim como o Armindo, gostaria de uma explicação mais técnica.
prefiro utilizar o bookmark, e acho que ele deve ser mais rápido, já que o modo de funcionamento dele é como se esse batesse uma foto da posição do cursos no momento, tendo então a chace de reposicionar o cursos em que precise fazer uma varedura. no entanto este método pode disparar uma exceção caso o dataset tenha sofrido alterações sérias.
já o findkey, como o próprio nome já diz, ele vai procurar um valor, ou seja, vai ter que varrer uma lista (apesar de ser bastante rápido já que se trata de um índice).
bom, mas assim como o Armindo, gostaria de uma explicação mais técnica.
GOSTEI 0