[firebase-br] Res: Em Rede sera que não da pau ?

Sandro oleber_itajai em yahoo.com.br
Qui Nov 8 14:39:50 -03 2007


Eu faria o seguinte:  usaria uma variavel na procedure E naum usuaria
trigger pra aciionar o valor da chave primaria e faria  assim:

* Gerar Entrada_Material */
        VARIAVEL_TAL = GEN_ID(GEN_ENTRADA_MATERIAL,1)
        /*  Use essa variavel pra aciionar o valor na  tabela master, e use
na tabela detalhe no lugar do gen_id*/

        INSERT INTO ENTRADA_MATERIAL
        (SEQUENCIAL_CIDADES, DATA_ENTRADA,
        SEQUENCIAL_FUNCIONARIOS, SEQUENCIAL_FORNECEDORES,
        SEQUENCIAL_TRANSPORTADORAS, TIPO_ENTRADA)
        VALUES
        (:SEQUENCIAL_CIDADES_P, CURRENT_DATE,
        :SEQUENCIAL_FUNCIONARIOS_P, :SEQUENCIAL_FORNECEDORES_P,
        :SEQUENCIAL_TRANSPORTADORAS_P, 'A');

        /* Gerar Entrada_Material_Detalhe */
        INSERT INTO ENTRADA_MATERIAL_DETALHE
        (SEQUENCIAL_PRODUTOS,QUANTIDADE,SEQUENCIAL_TIPO_UNIDADES,
        VALOR_UNITARIO, VALOR_TOTAL, SEQUENCIAL_ENTRADA_MATERIAL,
        DATA_ENTRADA) VALUES
        (:SEQUENCIAL_PRODUTOS_V,
        :QUANTIDADE_P, :SEQUENCIAL_TIPO_UNIDADES_V,
        :VALOR_UNITARIO_V, (:QUANTIDADE_P * :VALOR_UNITARIO_V),
        GEN_ID(GEN_ENTRADA_MATERIAL,0),
        CURRENT_DATE);




----- Original Message ----- 
From: "Anderson Oliveira Furtilho" <andersonfurtilho em gmail.com>
To: <lista em firebase.com.br>
Sent: Thursday, November 08, 2007 2:24 PM
Subject: Re: [firebase-br] Res: Em Rede sera que não da pau ?


> Valeu amigo, realmente irei rever esses processos que estou usando e
passar
> a usar o returning do insert.
> Assim ficara mais garantido mesmo que nao aconteça em rede.
>
> Valeu mesmo
>
>
>
> "marcos thomaz" <marcosthomazs em yahoo.com.br>
> escreveu na mensagem news:902100.80375.qm em web55402.mail.re4.yahoo.com...
> Se está dentro de uma procedure, pq vc não passa o valor do generator para
> uma variável e depois repassa aos 2 insert's??
>
> Ou ainda, se vc estiver usar o FB 2 pode usar a clausula returning do
> insert.
>
> na minha opinião, pode ser que dê problema, pois memso sendo muuuito
rápido
> esse processo, se 2 pessoas tiverem disparado a sp no mesmo instante, pode
> ser que (e digo pode ser) sejam pegos valores errados (visto que a
alteração
> do generator não depende da transação).
>
>
> ----- Mensagem original ----
> De: Anderson Oliveira Furtilho
> <andersonfurtilho em gmail.com>
> Para: lista em firebase.com.br
> Enviadas: Quinta-feira, 8 de Novembro de 2007 8:31:52
> Assunto: Em Rede sera que não da pau ?
>
> Olá amigo do news!!!
>
> Imaginem a seguinte situação dentro de uma procedure
>
>         /* Gerar Entrada_Material */
>         INSERT INTO ENTRADA_MATERIAL
>         (SEQUENCIAL_CIDADES, DATA_ENTRADA,
>         SEQUENCIAL_FUNCIONARIOS, SEQUENCIAL_FORNECEDORES,
>         SEQUENCIAL_TRANSPORTADORAS, TIPO_ENTRADA)
>         VALUES
>         (:SEQUENCIAL_CIDADES_P, CURRENT_DATE,
>         :SEQUENCIAL_FUNCIONARIOS_P, :SEQUENCIAL_FORNECEDORES_P,
>         :SEQUENCIAL_TRANSPORTADORAS_P, 'A');
>         /* Gerar Entrada_Material_Detalhe */
>         INSERT INTO ENTRADA_MATERIAL_DETALHE
>         (SEQUENCIAL_PRODUTOS,QUANTIDADE,SEQUENCIAL_TIPO_UNIDADES,
>         VALOR_UNITARIO, VALOR_TOTAL, SEQUENCIAL_ENTRADA_MATERIAL,
>         DATA_ENTRADA) VALUES
>         (:SEQUENCIAL_PRODUTOS_V,
>         :QUANTIDADE_P, :SEQUENCIAL_TIPO_UNIDADES_V,
>         :VALOR_UNITARIO_V, (:QUANTIDADE_P * :VALOR_UNITARIO_V),
>         GEN_ID(GEN_ENTRADA_MATERIAL,0),
>         CURRENT_DATE);
>
>
>
> Agora fica a duvida, o GEN_ID(GEN_ENTRADA_MATERIAL,0) pega o generator
atual
> da tabela master para inserir na detail.
> E se eu tiver 10 computadores usando a mesma procedure e lançando coisas
> diferentes, tudo ao mesmo tempo. Não corro o risco de gravar
> na detail o valor da generator atual de outros computadores ?
>
> No Postgresql sei que tenho que reservar uma seção assim toda vez que eu
> pegar um GEN_ID(GEN_ENTRADA_MATERIAL,0) eu sei
> que estou pegando do meu computador e não de outro computador que possa
> estar lançando atualmente.
>
> Desde já antecipo meus agradecimentos
>
> Anderson
>
>
>
>
>
>
>
> -----Anexo incorporado-----
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>       Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
> http://br.mail.yahoo.com/
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>


----------------------------------------------------------------------------
----


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


		
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/
 






Mais detalhes sobre a lista de discussão lista