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

Euler Jr. euler em siginformatica.com.br
Sex Ago 19 16:18:41 -03 2005


Vc pode testar sua conexão, verificando se ela está ativa. Se vc tem o 
D6 ou D7, utilize os comp. Indy Client (IdTCPClient). Crie uma função 
que teste a conexão com seu servidor, se for "ok" a conexão remota foi 
estabelecida.
Outra alternativa seria tb TcpClient da paleta Internet.
Dependendo do retorno da função vc efetua o tratamento da sua rotina.

[]s
Euler Jr.

marcio itarget escreveu:
> 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
> 
> ______________________________________________
> 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