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

Michel Mônaco michel.monaco em gmail.com
Qui Nov 8 09:46:17 -03 2007


O generator é do banco, não da estação cliente, ou seja, não vai se repetir.

Em 08/11/07, Anderson Oliveira Furtilho <andersonfurtilho em gmail.com>
escreveu:
>
> 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
>
>
>
>
>
> ______________________________________________
> 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