Como inserir dados em várias tabelas ao mesmo tempo
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
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
Curtidas 0
Respostas
Claudia Nogueira
04/06/2013
Basicamente você deve usar um bloco de try except usando transação, sendo assim ou tudo é executado ou nada.
Exemplo:
Eu não uso ApplyUpdate, pois utilizo componentes query com transação.
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.
GOSTEI 0
Romario Kilian
04/06/2013
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.
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.
GOSTEI 0
Claudia Nogueira
04/06/2013
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.
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.
GOSTEI 0
Romario Kilian
04/06/2013
Ola Claudia.
Tudo entendido e compreendido.
Muito Obrigado
Tudo entendido e compreendido.
Muito Obrigado
GOSTEI 0