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

Anderson Oliveira Furtilho andersonfurtilho em gmail.com
Qui Nov 8 14:24:15 -03 2007


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







Mais detalhes sobre a lista de discussão lista