[firebase-br] Dúvida com transação x refresh
Magno System
magno em speet.com.br
Qui Abr 14 12:12:33 -03 2011
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.
----- Original Message -----
From: "Paulo Portella" <pportellaa.firebase em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, April 14, 2011 11:44 AM
Subject: Re: [firebase-br] Dúvida com transação x refresh
Alguns artigos que facilmente encontra-se no google :
http://www.firebirdfaq.org/faq29/
http://www.firebase.com.br/fb/artigo.php?id=977
http://www.firebase.com.br/fb/artigo.php?id=1017
http://www.devmedia.com.br/post-17924-Auto-Incremento--Firebird.html
http://www.google.com.br/url?sa=t&source=web&cd=7&ved=0CEoQFjAG&url=http%3A%2F%2Fwww.planetadelphi.com.br%2Fdownload%2F4229%2FAutoincremento%2520no%2520firebird&ei=ywanTcCXI6HE0QG-q_T5CA&usg=AFQjCNGNC1zxv57KMiK42nDsMeYI62sCtA
Um exemplo de Código em Delphi:
procedure TDMC.cdsClientesBeforePost(DataSet: TDataSet);
begin
if dmc.cdsClientes.State in [dsInsert] then
dmc.cdsClientesID.AsInteger:=dmcProximoCodigo('CLIENTES','ID','');
end;
function TDMC.dmcProximoCodigo(Tabela, Campo, Condicao: String): Integer;
begin
if sqlProximoCodigo.Active then sqlProximoCodigo.Close;
sqlProximoCodigo.SQL.Clear;
sqlProximoCodigo.SQL.Add('SELECT MAX('+Campo+') AS VALOR FROM '+Tabela+'
'+Condicao);
sqlProximoCodigo.Open;
if sqlProximoCodigo.FieldByName('VALOR').IsNull then Result:=1 else
Result:=StrToInt(sqlProximoCodigo.FieldByName('VALOR').Value)+1;
end;
Vida de americano é assim: iPhone, iPod, iPad, iMac….
Já a de brasileiro é assim:IPTU, IPVA, ICMS, IPI etc
Em 14/04/2011 11:27, Magno System escreveu:
> É o seguinte pessoal, tenho a QUERY1 que possui um SELECT que me retorna
> uma série de registros. Na realidade estes registros são PK's que vou
> enviar para um outro banco (outro FDB) e assim que enviadas apagadas do
> meu banco.
>
> O que eu preciso é me assegurar que não vá ser dado nenhum REFRESH na
> QUERY1 pois mesmo depois de apagadas todas as PK's que a QUERY1 me
> retornar eu preciso ainda ter estas PK's bufferizadas na QUERY1.
>
> Como trabalho com o IBO eu sei que o mesmo tem um controle interno e
> independente das transações. Tenho medo do componente dar um REFRESH em
> background sem eu saber. Se isto ocorrer, eu vou perder os registros que a
> query me retornou visto que eles já podem ter sido apagados.
>
> Tem alguma configuração no IBO para eu evitar isto ???
>
> Software House Magno System
> Site: www.magnosystem.com.br
> Email: magno em speet.com.br
> Tel.: (35)3371-2337 / (35) 9129-7634
> ______________________________________________
> 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
______________________________________________
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