[firebase-br] RES: RES: RES: RES: Gravação Mestre Detalhe

Zottis IG bzottis em ig.com.br
Qua Out 21 10:43:33 -03 2009


eu uso ele anualmente, ou pode ser passado também os últimos 100, dependendo 
da necessidade de cada um, mas pra mim deu certo.



Arte&Cor Estamparia - Zottis

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "Luis" <luisfirevb em gmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Wednesday, October 21, 2009 9:50 AM
Subject: [firebase-br] RES: RES: RES: RES: Gravação Mestre Detalhe


Zottis esse seu código é interessante, deve ser usado em períodos
pré-estabelecidos em função do volume de registros gravados para
verificação, e talvez a criação de uma tabela auxiliar onde fossem gravados
os "furos" encontrados para reutilização.

Legal.
Luis

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Zottis IG
Enviada em: quarta-feira, 21 de outubro de 2009 09:20
Para: FireBase
Assunto: Re: [firebase-br] RES: RES: RES: Gravação Mestre Detalhe

neste caso, pode ser usado uma procedure para verificar o "FURO" na
sequencia
e antes de inserir o Código, se a procedure retornar algum desses furos, é
utilizado aquele código.
vou passar a procedure que uso em um cliente

SET TERM ^ ;

CREATE PROCEDURE OBTER_CODIGO_NULO
RETURNS (
    Codigo_nulo INTEGER)
AS
DECLARE VARIABLE Minimo INTEGER;
DECLARE VARIABLE Maximo INTEGER;
DECLARE VARIABLE Sequencia INTEGER;
DECLARE VARIABLE Valor_atual INTEGER;
begin
  select Min(F.Codigo) from Far_mtr F
  INTO MINIMO;
  select max(F.Codigo) from Far_mtr F
  INTO MAXIMO;

  sequencia = MINIMO;

  while (sequencia <= maximo) DO
    begin
                 select FIRST 1 F.Codigo from Far_mtr F where F.Codigo =
:sequencia
                 INTO Valor_atual;

            if (:Valor_atual <> :Sequencia) then
            begin
              CODIGO_NULO = Sequencia;
              leave;
            END
      Sequencia = Sequencia + 1;
  end

  suspend;
end^

SET TERM ; ^



Arte&Cor Estamparia - Zottis

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "Luis" <luisfirevb em gmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Wednesday, October 21, 2009 9:04 AM
Subject: [firebase-br] RES: RES: RES: Gravação Mestre Detalhe


Só para dar uma alternativa, no meu sistema não posso permitir quebras na
sequencia da numeração,por questão de auditoria, então se acontecer algo
para cancelar uma inclusão, etc... evito usar os geradores.

Minha solução, pode não ser a melhor, mas funciona muito bem até hoje, foi
no momento da gravação pegar o maior número da ID somar um e gravar, se der
erro (já foi gravado o mesmo número num milessegundo anterior, então
intercepto o erro e somo mais 1 ao último ID e tento novamente até
conseguir, ao gravar o pedido vou e gravo seus itens com o mesmo ID.

Já trabalhei com 20 usuários simultaneamente durante uma semana direto e não
houve qualquer problema, seja de lentidão, erros, etc...

Pode ser que usando os generators seja mais profissional, mas qualquer
problema durante o processo, travamento do micro, bloqueio do servidor, ou
qualquer outra coisa que impossibilite a finalização da gravação irá perder
a sequência numérica e se isso é vital, então eles não podem ser usados.

Luis


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eduardo Bahiense
Enviada em: quarta-feira, 21 de outubro de 2009 08:21
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] RES: RES: Gravação Mestre Detalhe

Não basta

Se vc não usar generator, jamais terá certeza que dois usuários não
pegam o mesmo id.


Felix escreveu:


______________________________________________
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