Re: [firebase-br] Cantu, esta é para vc -> PROBLEMA AO ATUALIZAR UM REGISTRO DE UMA TABELA ->

marcio itarget marcio em itarget.com.br
Sex Ago 19 21:12:28 -03 2005


quanto a isto tenho uma rotina que desvia qualquer exceção do banco para um 
procedimento. no form principal coloco:
    Application.OnException := AppException;//onde APPexception é uma função 
que trata erros de todo tipo que podem acontecer na aplicação....
o problema é que ao puxar o cabo(ou perder a conexão com a net). não tem 
como eu dá um TABSRV.FBTFCSRV.RollbackRetaining
pois o FBTFCSRV se refere a um banco que está na net... ai tá o problema que 
gera a mensagem
"LOCK CONFLIT ON NO WAIT >>>> TRANSACTION".


----- Original Message ----- 
From: "Alisson" <arsuart em uol.com.br>
To: <lista em firebase.com.br>
Sent: Friday, August 19, 2005 10:32 AM
Subject: Re: [firebase-br] Cantu, esta é para vc -> PROBLEMA AO ATUALIZAR UM 
REGISTRO DE UMA TABELA ->


> Cara... esse seu comando....
>
> TABSRV.FBQPDV.EDIT;
>>>>        TABSRV.FBQPDVCOD_VERSAO_PDV.VALUE:=VERSAO_PDV_C;
>>>>        TABSRV.FBQPDV.POST;
>>>>        IF TABSRV.FBTFCSRV.InTransaction THEN
>>>>           TABSRV.FBTFCSRV.CommitRetaining
>
> Esta em um Try e Except...???
> pq c nao estiver. faça o seguinte...
>
> Try
>     TABSRV.FBQPDV.EDIT;
>     TABSRV.FBQPDVCOD_VERSAO_PDV.VALUE:=VERSAO_PDV_C;
>     TABSRV.FBQPDV.POST;
>     IF TABSRV.FBTFCSRV.InTransaction THEN
>          TABSRV.FBTFCSRV.CommitRetaining
> Except
>    TABSRV.FBTFCSRV.RollbackRetaining;
>
> Isso vai garantir q jah q ele bloqueou teu registro para comitar.. ele de 
> um rollback na transação e deixo o registro livre..!!!!
> simulei algo parecido com isso aqui.. e pra mim nao houve problema... soh 
> nao tenho o banco na internet.. esta em rede lokal..!!!
>
> falow...
>
> -- 
> Abraços
>
> Alisson
>
> "marcio itarget" <marcio em itarget.com.br> escreveu na mensagem 
> news:001d01c5a4fb$5d538b70$4d00a8c0 em ITNOTEBOOK...
>>
>>
>>>> VOU DESCREVER O PROBLEMA PRIMEIRAMENTE COMO ACONTECEU. ESTAVA TESTANDO 
>>>> CONSISTENCIA DO FB AI RESOLVI USAR O TRACE DO DELPHI(F5) PARA DEPURAR 
>>>> AS MUDANÇAS. NUM DETERMINADA TABELA COLOQUEI A MESMA EM ESTADO DE 
>>>> EDIÇÃO E AI DEPOIS DE ATRIBUIR OS NOVOS VALORES PARA UM DETERMINADO 
>>>> REGISTRO PRE-EXISTENTE, O CODIGO SEGUE-SE COM UM POST E DEPOIS UM 
>>>> COMMITRETEAING. COMO ESTÁ ABAIXO:
>>>>
>>>>        TABSRV.FBQPDV.EDIT;
>>>>        TABSRV.FBQPDVCOD_VERSAO_PDV.VALUE:=VERSAO_PDV_C;
>>>>        TABSRV.FBQPDV.POST;
>>>>        IF TABSRV.FBTFCSRV.InTransaction THEN
>>>>           TABSRV.FBTFCSRV.CommitRetaining
>>>>
>>>>
>>>> ANTES DE EXECUTAR O COMMITRETAINING EU PUXEI O CABO DE REDE E AI O 
>>>> DELPHI ACUSOU A PERDA DE CONEXÃO DA REDE. ATÉ AI TUDO BEM. SÓ QUE 
>>>> QUANDO VOLTEI A EXECUTAR O MESMO TRECHO DE CÓDIGO, AI QUANDO SE APLICA 
>>>> O POST O PROGRAMA DÁ A SEGUINTE MENSAGEM(DIGO O FB)-> "LOCK CONFLIT ON 
>>>> NO WAIT TRANSACTION". DETALHE QUE MEU COMPONENTE TRANSACTION ESTA COMO 
>>>> "read_committed,rec_version,nowait..."
>>>>
>>>>
>>>> E ESTE REGISTRO SÓ CONSIGO REALMENTE ALTERÁ-LO SE DÉ UM BACKUP E 
>>>> RESTORE NO BANCO DE DADOS(O PRO MAIOR É QUE O BANCO ESTÁ REMOTO NA 
>>>> INTERNET E COM 100MB),  ou encerrar e reiniciar o FB. MINHAS DÚVIDAS:
>>>>
>>>> 1) POR QUE O ERRO
>>>>
>>>> 2) COMO CONSERTÁ-LO E PODER ALTERAR O REGISTRO SEM Q PRECISE FAZER UM 
>>>> BACKUP-RESTORE NO BANCO...
>>>>
>>>> 3) SE SÓ O BACKUP-RESTORE FOR A SOLUÇÃO QUAL A MELHOR FERRAMENTA PARA 
>>>> FAZER ISTO JÁ QUE O BANCO ESTÁ NA INTERNET...
>>>>
>>>> OBRIGADO ANTECIPADAMENTE.
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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.bavs.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.bavs.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 





Mais detalhes sobre a lista de discussão lista