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

Felix felix2005 em oi.com.br
Ter Out 20 22:07:18 -03 2009


Especificamente, quero confirmar o seguinte: 

após todos os lançamentos em Edit´s e componentes semelhantes, é aberta uma
transação - inicio a gravação dos dados: obtenho numero de controle (select
first 1 ped_numero from tab_mestre order by ped_numero desc), via stored
procedure armazeno dados da tabela mestre e tabelas detalhes - commit na
transação. Ajustes de quantidades dos produtos via triggers.

Do início ao fechamento da transação é tudo muito rápido, pois não há nenhum
dado pendente a ser definido pelo usuário, nenhuma consulta demorada a ser
feita.

Transaction read_commited, rec_version, NOWAIT.

Isto basta para ter a certeza de que 2 usuários não irão obter a mesma
numeração de controle?

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Renan Cruz de Almeida
Enviada em: terça-feira, 20 de outubro de 2009 20:30
Para: FireBase
Assunto: Re: [firebase-br] RES: Gravação Mestre Detalhe


Implementei um semáforo para controle ao recurso compartilhado.

[]'s
Renan


Felix escreveu:
> Excelente! :-)
>
> Pergunta: como você faz para impedir gravações simultaneas ?
>
>
> Fco. Felix
> Desenvolvimento de Sistemas
> www.soltecnologia.com.br
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em
> nome de Renan Cruz de Almeida
> Enviada em: terça-feira, 20 de outubro de 2009 19:54
> Para: FireBase
> Assunto: Re: [firebase-br] Gravação Mestre Detalhe
>
>
> Você deve esquecer os componentes de acesso ao banco de dados 
> disponibilizados, por exemplo, pelo delphi, para não lhe atrapalhar num 
> ambiente de rede.
>
> Você deve criar uma interface que acumule todos os dados do pedido e de 
> seus itens, poderá se utilizar de componentes "normais" como edit, 
> string grid, que não são linkados diretamente ao banco de dados.
>
> Depois que tudo for digitado pelo operador, ele vai acionar um botão de 
> incluir que acionará a rotina de inclusão do pedido, a qual vai reservar 
> naquele momento a tabela de pedido, para que possa ser gravado um novo 
> pedido, junto com seus itens, assim não existirá qualquer possibilidade 
> de erro na gravação, nem mesmo qualquer possibilidade de outro usuário 
> da rede gravar um pedido com o mesmo número de pedido. Após a gravação 
> do pedido a rotina finalizará liberando a tabela na rede para outro 
> usuário também gravar pedido. Você precisa implementar um semáforo para 
> controle ao recurso compartilhado.
>
> Por fim, ressalvo ainda que a sua dúvida não é do firebird e sim 
> relacionada à análise e modelagem de sistema.
>
> []'s
> Renan
>
>
> joao_jma escreveu:
>   
>> Pessoal, gostaria de uma opinião de vocês...
>>
>> Quando utilizam tabela mestre / detalhe, como gravam a referência na
>>     
> tabela detalhe se o sistema é utilizado em rede?
>   
>> Detalhando:
>>
>>     Imaginem uma tabela de pedidos e uma tabela de itens do pedido:
>>
>>     PEDIDO(NUMERO, DATA, CLIENTE...)
>>
>>     ITENS_PED(NR_PEDIDO, CODPROD, VLUNIT, QTDE...)
>>
>>     Como gravam na tabela ITENS_PED o campo NR_PEDIDO ???
>>
>>
>>     
>
----------------------------------------------------------------------------
> --------------------------------------
>   
>> Estou com problemas com isso quando é feito a gravação em rede
>>     
> simultaneamente.
>   
>> Antecipo meus agradecimentos
>>
>> []'s
>>
>> João
>> ______________________________________________
>> 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