DataSetProvider - poAllowMultiRecordUpdates
Qual função desta propriedade ? Procurei porém não achei nada sobre o assunto !
Ronaldo Lanhellas
Curtidas 0
Respostas
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
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
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
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
01/07/2011
perfeito !!
GOSTEI 0