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

Eduardo Bahiense eduardo em icontroller.com.br
Qua Out 21 08:21:29 -03 2009


Não basta

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


Felix escreveu:
> 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
> 
> 
> ______________________________________________
> 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