DataSetProvider - poAllowMultiRecordUpdates

Delphi

01/07/2011

Qual função desta propriedade ? Procurei porém não achei nada sobre o assunto !
Ronaldo Lanhellas

Ronaldo Lanhellas

Curtidas 0

Respostas

Marco Salles

Marco Salles

01/07/2011

Qual função desta propriedade ? Procurei porém não achei nada sobre o assunto !


Não tinha . Agora tem.. Ve se ficou legau ?

http://marcosalles.wordpress.com/2011/07/02/para-que-serve-a-opcao-poallowmultirecordupdates-da-propriedade-options-do-tdatasetprovider/


GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

01/07/2011

 Li todo a thread e gostei muito , tenho que confessar que minha ideia sobre o poAllowMultRecordUpdates era outra, mais depois deste Post irei ter muito mais cuidado ao utilizá-lo em minhas aplicações.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

01/07/2011

obs: entendi também que se você estiver utilizando um providerFlag UpdateWhereKeyOnly não tem perigo de duplicar registros, afinal estamos trabalhando com chave primária.
GOSTEI 0
Marco Salles

Marco Salles

01/07/2011

obs: entendi também que se você estiver utilizando um providerFlag UpdateWhereKeyOnly não tem perigo de duplicar registros, afinal estamos trabalhando com chave primária.



Hummm , veja o select abaixo


Select CampoChavePrimaria , outrocampo From tabela

updateMode: upWhereAll  .. Não haverá duplicação  .. pois todos os campos sao envolvidos na localização . Como não há dois campos " CampoChavePrimaria"  iguais , mesmo sendo o updateMode configurado como upWhereAll , nunca a exceção será disparada se o poAllowMultiRecordUpdates estiver em false
    

updateMode: upWhereChanged  .. Pode ocorrer duplicação ( exceção será pu não disparada se poAllowMultiRecordUpdates estiver em false )

updateMode: upWhereKeyOnly  ... Não haverá .. Pois so o campo chave participa do Sql resolvido pelo Provider



Mas olha so . A configuração do updateMode juntamente com as configurações do provider flags È MAIS do que o fato
de usar ou não o poAllowMultiRecordUpdates setado em true .

Ja vi um outro tópico seu que parece que vc estava meio confuso neste quesito . Não esqueça que algumas vezes vc tem
concorrência de acesso a um mesmo registro por clientes diefrentes ( seje em rede , client/Servidor , DataSnap ), Pode
simular isto executando duas copias do mesmo aplicativo e tentando alterar o mesmo registro ( não esqueca de dar o
applayUpdates para  persirtir ) . Depedendo de como esta configurado o updatemode e o providerflages dos tfields vc
não conseguira aplicar as atualizaões ( programe o evento onreconcileError para ver isto)

ps) tô levantando esta situação , para NÂo deixar todo o vinculo  do updateMode com o poAllowMultiRecordUpdates . São
partes de um mesmo quebra cabeça e é um conjunto . Tem que serem intendidos de forma separadas


GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

01/07/2011

perfeito !!
GOSTEI 0
POSTAR