[firebase-br] Erro sinistro !

Anderson Miranda Barrozo andersonpaduarj em hotmail.com
Qui Jan 10 23:07:11 -03 2008


Grande,
 
     Pelo IBExpert vc consegue alterá-lo ?
 
Anderson Miranda 
> From: infosag em terra.com.br> To: lista em firebase.com.br> Date: Thu, 10 Jan 2008 23:01:59 -0300> Subject: Re: [firebase-br] Erro sinistro !> > amigo show de explicacao !!!!> > ate exclui os componentes e os coloquei de volta com essas configuracoess !> > mas o problema ainda persiste !! consigo alterar o 1 registro e salva > tranquilo !> > mas se tento qq um dos ultimos ele da o erro !!!!> > se altero pelo IBexpert ele altera os registros em questao !> > e agora ?> > > ----- Original Message ----- > From: "Eduardo Bahiense" <eduardo em icontroller.com.br>> To: <lista em firebase.com.br>> Sent: Thursday, January 10, 2008 9:45 PM> Subject: Re: [firebase-br] Erro sinistro !> > > Olá Anderson> > Isto não é problema do FB, mas do(s) componente(s) que vc está usando.> Já acompanhei um erro como esse na lista da Borland, então vou arriscar> que seu caso seja semelhante.> Faz tempo que não trabalho com Delphi, então não leve as coisas ao pé da> letra.> > Se você estiver usando CDS+Provider, há uma propriedade no provider que> se refere ao modo de atualização (updatemode, se não me engano). Esta> propriedade, normalmente, vem com default Allfields (ou algo> semelhante). O melhor é que ela seja KeyOnly, pelo seguinte:> Quando está All e você edita um registro, ele vai montar um update do tipo:> UPDATE TABELA SET CAMPO = VALOREDITADO WHERE> CAMPO1=X AND CAMPO2=Y AND CAMPO3=Z AND CAMPON=...> > O problema é que se algum dos seus campos for TIMESTAMP, pode haver> diferença de milisegundos pelo tratamento do componente de acesso. Se> não me engano, isto também pode acontecer em campos FLOAT. A> conseqüência é que como a instrução de update se refere a todos os> campos, se um deles não for com o valor exato, vai furar a condição do> WHERE e o número de registros afetados pela instrução retorna ZERO. O> seu componente de acesso, por sua vez, interpreta isso como "Registro> não existente ou modificado por outro usuário".> > A solução então é trocar a propriedade para KeyOnly, ou seja, o UPDATE> será montado considerando somente a chave primária da tabela. Algo assim:> > UPDATE TABELA SET CAMPO = VALOREDITADO WHERE CAMPOPK=X> > Naturalmente, no mesmo componente de acesso, ou no provider, ou no CDS,> não lembro bem, você terá que indicar quais campos compõem a chave> primária da tabela em questão.> > Espero ter conseguido me fazer entender e ter ajudado.> Talvez algum colega mais ativo nesse assunto possa ajudar melhor,> principalmente se você nos disser mais sobre o seu ambiente de> senvolvimento - Linguagem, Sistema Operacional e Componente de acesso> utilizado.> > Abs,> > Eduardo> > Anderson escreveu:> > Pessoal tenho uma tabela com uns 100 itens> >> > o detalhe é que se tento alterar os primeiros registros ele altera na boa.> >> > mas se tento alterar os ultimos ele da:> >> > "record not found or changed by another user firebird" e depois "record > > not> > find"> >> > Ja restaurei backup, recriei indice, apaguei o codigo 83 por exemplo, e> > coloquei de novo !!!!> >> > e mesmo assim ainda da o erro !> >> > Uso fire 2.0 delphi 7 e Dbexpress> >> > Abracos> >> >> > ______________________________________________> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br> > Para editar sua configuração na lista, use o endereço > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa> >> > > ______________________________________________> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br> Para editar sua configuração na lista, use o endereço > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> Para consultar mensagens antigas: http://firebase.com.br/pesquisa> > > ______________________________________________> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_________________________________________________________________
Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas e muito mais no MSN Video!
http://video.msn.com/?mkt=pt-br


Mais detalhes sobre a lista de discussão lista