[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