Fórum Como inserir dados em várias tabelas ao mesmo tempo #444757

04/06/2013

0

Caros.

Como inserir dados em várias tabelas ao mesmo tempo usando Delphi 7, Firebird 2.5, DBExpress.?

Exemplo:

Uma venda que deve ser registrada na tabela de vendas, na tabela de Contas a Receber e na tabela de Estoque(baixa) ?

l) Dentro de uma transação - fazendo três inserts e por fim um AppliUpDates()?
2) Stored Procedure ??

Ou outra forma ? e Qual a melhor em termos de segurança e performance ??

Obrigado.

Romario
Romario Kilian

Romario Kilian

Responder

Posts

05/06/2013

Claudia Nogueira

Basicamente você deve usar um bloco de try except usando transação, sendo assim ou tudo é executado ou nada.

Exemplo:
try
  if not Transacao.InTransaction then
    Transacao.StartTransaction;
  //Insere venda
  //Insere Itens da Venda
  //Insere Contas a Receber
  //Insere Caixa
  //Insere mais o que tiver de inserir
  Transacao.CommitRetaining;  
except
  Transacao.RollbackRetaining
end;


Eu não uso ApplyUpdate, pois utilizo componentes query com transação.
Responder

Gostei + 0

05/06/2013

Romario Kilian

Obrigado, Claudia, por responder.

Só não entendi "não uso ApplyUpDate e uso query com transação". Isso significa que você usa os componentes da palheta IBX (Interbase) ?? e não a palheta DBExpress ?? é isso ??

Obrigado.
Responder

Gostei + 0

05/06/2013

Claudia Nogueira

Uso os componentes da paleta Interbase, e o ApplyUpdates se torna inútil já que eu trabalho com transações, pois o que estiver dentro do bloco try except ou é tudo executado, ou nada. Nunca precisei usar ApplyUpdates pra nada e tenho sistemas grandes feitos em Delphi com Firebird.

Obrigado, Claudia, por responder.

Só não entendi "não uso ApplyUpDate e uso query com transação". Isso significa que você usa os componentes da palheta IBX (Interbase) ?? e não a palheta DBExpress ?? é isso ??

Obrigado.
Responder

Gostei + 0

05/06/2013

Romario Kilian

Ola Claudia.

Tudo entendido e compreendido.

Muito Obrigado
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar