Atualizar/Inserir no banco é mais rápido pelo ClientDataSet?

Delphi

24/08/2005

É mais rápido ir atualizando (ou inserindo) dados na base um a um através de uma consulta Update (ou Insert), ou aplicar todas as alterações (ou inclusões) em um ClientDataSet e depois aplicar tudo de uma só vez através de um ApplyUpdate?


detalhando...

Qual das duas situações é mais rápido?
1- Uma consulta Update que recebe como parâmetro o código do cliente e altera o valor de um campo.
isso é feito através de um laço que vai passando por todos os registros (disponíveis no ClientDataSet) e passando o parâmetro (código do cliente)
para a consulta, que por sua vez vai atualizando os registros, um a um.

2- através de um laço, sair varrendo todos os registros de um ClientDataSet e ir atualizando os campos necessários no ClientDataSet.
após tudo alterado, dar um ApplyUpdate(0) para que as alterações sejam aplicadas a base.


E a mesma situação para o comando Insert? qual o melhor método?


Raserafim

Raserafim

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

24/08/2005

Acho q depende, qdo é preciso abrir os dados e depois atualizar esses dados, o ClientDataSet é mais rápido.

Qdo é preciso somente inserir dados, um INSERT INTO vai ser mais rápido, pois nao vai perder tempo abrindo query, por mais que fosse um WHERE 0 = 1. Mesmo assim, pela produtividade e facilidade em manutenções, prefiro usar ao máximo ClientDataSet, pois uso muito data controls.


GOSTEI 0
POSTAR