[firebase-br] Dúvida com transação x refresh

Magno System magno em speet.com.br
Qui Abr 14 13:04:13 -03 2011


Não tem como. Eu apenas simplifiquei o processo para exemplificar. Na 
realidade é uma rotina de PDV off-line. Eu tenho que verificar quantas 
vendas tem para descarregar no servidor abrir um loop para correr cada 
código de venda, e cada venda navegada dentro deste loop exportar a tabela 
de caixa, tabela de estoque, tabela parcelas e outras mais que pertence a 
esta venda. Uma vez exportada para o servidor eu apago a do banco local. 
Estou usando um COMMIT de duas fases para garantir a integridade. Cada venda 
que é descarregada no servidor e apagada no banco local é uma transação.

Estive pesquisando e acho que vou usar a transação CONCURRENCY  (REPEATABLE 
READ) na query do loop.


----- Original Message ----- 
From: "Forrest®" <fernando.bg em gmail.com>
To: <lista em firebase.com.br>
Sent: Thursday, April 14, 2011 12:35 PM
Subject: Re: [firebase-br] Dúvida com transação x refresh


Em 14/04/2011 12:12, Magno System escreveu:
> Obrigado Paulo, mas acho que não expliquei direito.
>
> Vou colocar o procedimento:
>
> Query1 = SELECT CODIGOVENDA FROM VENDAS WHERE VENDA > :VENDA;
>
> While Query1.eof = false do
> Begin
>     QueryOutroBanco =  INSERT INTO VENDAS... (Insere no outro banco a o 
> registro atual da  query1)
>     QueryDesteBanco =  DELETE FROM VENDAS  (Deleta o registro atual da 
> query1)
>     Query1.next;
> end;
>
> Note que são 3 querys. Uma para o loop (Query1),  uma para inserção em 
> outro banco (QueryOutroBanco)  e outro para deleção no meu banco 
> (QueryDesteBanco)
> Deste modo, preciso assegurar que o IBO não faça nenhum REFRESH em Query1 
> para que as deleções feitas por QueryOutroBanco não interfiram no loop.

Boa tarde Magno

Não é muito melhor fazer dessa forma ???


Query1 = SELECT CODIGOVENDA FROM VENDAS WHERE VENDA > :VENDA;

While Query1.eof = false do
Begin
    QueryOutroBanco =  INSERT INTO VENDAS... (Insere no outro banco a o 
registro atual da  query1)
    Query1.next;
end;

Query1 = DELETE FROM VENDAS WHERE VENDA > :VENDA

Se entendi bem o que você quer terá o mesmo efeito com menos componentes e 
menos códigos.

T++++++++++++++



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista