[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