[firebase-br] RES: RES: Controle de transações

gmail thiago.rachadel em gmail.com
Qua Nov 25 16:06:00 -03 2009


Mais alguem tem alguma sugestão? Esta apresentada aqui apesar de
aparentemente aumentar minha garantia ainda pode dar galho em minha
avaliação. Além do que vai dar um trabalhão alterar isto no programa
inteiro. Precisaria realmente de uma maneira de garantir que ao pegar o
primeiro código já tivesse certeza de que ele é único.



-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Magno System
Enviada em: quarta-feira, 25 de novembro de 2009 13:45
Para: FireBase
Assunto: Re: [firebase-br] RES: Controle de transações

Tive um caso parecido com o seu e resolvi mais ou menos assim

Varmax := Extrai valor máximo
Campo := VarMax;
Try
     Post;
Except
    Begin
          Sleep(500) //meio segundo
          Campo := VarMax + 1
          Try
              Post;
          Except
              Sleep(500)
              Campo := VarMax + 2;
               Try
                   Post;
               Except
                    Showmessage('Falha ao gravar o registro');
               end
          end
   end

----- Original Message ----- 
From: "gmail" <thiago.rachadel em gmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Wednesday, November 25, 2009 3:30 PM
Subject: [firebase-br] RES: Controle de transações


Já tinha pensado nisto. Mas como tratar com generator o fato de ter mais de
uma empresa? Uma generator para cada empresa?
Tem um exemplo de código para me passar de como buscar o valor da generator
da aplicação? Como criar automaticamente uma nova generator direto da
aplicação ao ser criada uma nova empresa?

Grato

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Magno System
Enviada em: quarta-feira, 25 de novembro de 2009 13:29
Para: FireBase
Assunto: Re: [firebase-br] Controle de transações

Procure trabalhar com GENERATOR em vez de pegar o maior valor em um SELECT.
Embora seja difícil que duas máquinas peguem o valor maior ao mesmo tempo,
teóricamente é possível. Já com GENERATORS é impossível.


----- Original Message ----- 
From: "gmail" <thiago.rachadel em gmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Wednesday, November 25, 2009 3:21 PM
Subject: [firebase-br] Controle de transações


Estou tendo um problemas com transações na movimentação de estoques. A
tabela de movimentação é composta pela chave empresa, código e utilizada em
várias áreas do sistema.
Mas para meu desespero em algumas situações (raras mais presentes) acontece
de dar conflito no campo código. Tenho um único IBTransacton para as
movimentações de estoque configurado com read_committed, rec_version,
nowait. Ao abrir um novo registro preencho todos os campos e somente no
final coloco o código como abaixo:

FrmPrincipal.TrEstoque.CommitRetaining;
Mov := MaiorValorReg('MOVIMENTO_ESTOQUE_ABS', ['CD_EMPRESA'],
[TabOPCD_EMPRESA.value], 'CD_MOVIMENTO') + 1;
TabMovimentoCD_MOVIMENTO.value := Mov;
TabMovimento.Post;
TabMovimento.ApplyUpdates(-1);
TabMovimento.DBTransaction.CommitRetaining;

Alguém tem alguma luz?? Utilizo Delphi + IBX + Firebird.


______________________________________________
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


______________________________________________
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