Re: [firebase-br] Transações: como utilizar? Urgentíssimo Por Favor

Fortes Marcelo marcelosoftware em yahoo.com.br
Seg Fev 13 21:55:32 -03 2006


Essa pergunta tem como resposta outra; Qual conjuto de componentes você está usando?
   
  Bem se você está usando Delphi, Componentes como IBO www.ibobjects.com
  Você não precisa se preocupar com data sets que vão fechar casso um commit seja realizado, ele automaticamente a cada post por exemplo comita a transação para você e mantei os outros Datasets conscientes da transação sem fecha-los, num processo que você se não quiser  não se preocupa em ter que tratar fisicamente as transações.
   
  Existe também o FIB+ www.devrace.com , que é muito parecido com o IBX do Delphi mas bem melhor, até turbinado! com ele vc pode ter por exemplo um DataSet ligado a duas Transactions distintas, uma para gravação/updates e outra para leitura, então você pode usar auto-commit que faz o commit automáico sem ter medo de que o banco vá afundar se uma transação ficar inesperadamente muito tempo aberta num commit retaining, por exemplo, é muito bom. Trablhar com Master/Detail nele é muito legal também.
   
  IBX, bem IBX são os componente da paleta InterBase no Delphi, têem a chatice de que você tem que tratar cada data set associado a uma transação qualquer após um commit ou rollback, e você explicitamente tem que iniciar as tais transações, então a solução é usar commit retaining que comita deixando o contexto da transaction aberta para os data sets, mas você vai ter que ficar ligado, por que isso pode afogar o SGBD, o InterBase 7.5 resolveu muito isso por uma lado, de a transação ficar muito tempo aberta com um commit retainig não afogar o banco, mas não sei responder sobre o Firebird 1.5.x e 2.0 se eles fzem igual ao InterBase neste aspecto.
   
  MercuryDB até onde eu saiba é o mesmo caso do IBX.
   
  Não sei responder sobre componentes como Zeus e UIB.
   
  Marcelo Fortes.
  
ibestvip <zottissistemas em ibestvip.com.br> escreveu:
  Tentando Novamente

Pessoal:
Tenho as tabelas: pedidos, itens, clientes, produtos, formaPgto, transportadoras, tabelapreco;
as tabelas são dependentes entre si na hora de fazer um novo pedido. 
Minha pergunta é a seguinte: Abro uma nova transação e insiro um novo pedido, tenho que cadastrar um novo cliente, itens, talvez produtos, etc. como agir se já tenho uma transação aberta? ao dar um commit na tabela clientes ele fecha as outras tabelas e também a tabela pedido que estava em modo de inserção. A tabela clientes Eu necessitaria de que fosse commitada pois independente do pedido dar certo ou gerar erro, teria de ser gravado e não pertencer ao rollback do erro do Pedido.
Como resolver essa questão?
Abro uma nova transação, e dou commit ele não fechará a outra também?
A outra transação enxergará o novo registro?

Alguém tem uma luz de como devo Proceder.

Grato. 


Zottis Sistemas de Automação Comercial 

Delphi/PHP/Firebird/MySQL. 
(44) 3631-3643 

Cianorte - Paraná. 
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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! Acesso Grátis 
Internet rápida e grátis. Instale o discador agora!


Mais detalhes sobre a lista de discussão lista