[firebase-br] RES: Meio OFF - atualizar estoque de produtos

Fabiana Thome fabiana.thome em tan.com.br
Qua Ago 15 13:46:28 -03 2007


Reijanio,

conforme entendo a questão de triggers, você não as utiliza no Delphi. Estas
são disparadas pelo FIREBIRD quando você efetuar um INSERT, UPDATE ou DELETE
da tabela na qual as inseriu. Explicando melhor: você possui a tabela
itens_nfcompra, cria triggers para o after insert, after update e after
delete desta tabela. Assim, toda vez que você incluir um registro em
itens_nfcompra a trigger associada ao after insert será disparada.

Desta forma, no Delphi, você se preocupa em efetuar INSERT, UPDATE ou DELETE
na tabela itens_nfcompra, o restante será feito no FIREBIRD.

Assim, no exemplo do Helton, temos a trigger do after insert da tabela
itens_nfcompra:

CREATE TRIGGER "ITENSPRODUTOS_AI0" FOR "ITENSPRODUTOS
ACTIVE AFTER INSERT POSITION 0
AS
begin
/* Trigger text */
update produtos
set
   produtos.est_prod= produtos.est_prod - new.qtdevenda
WHERE
   produtos.cod_prod=new.cod_prod;
end

Quando o seu programa inserir um registro na tabela itens_nfcompra, a
trigger acima será dispara e atualizará a tabela produtos.

Você pode escolher utilizar STORED PROCEDURE, estas sim, precisam ser
disparadas no Delphi. Veja exemplo abaixo:

  td.TransactionID  := 01;
  td.IsolationLevel := xilREADCOMMITTED;

  QrFil               := TSQLStoredProc.Create(Nil);
  QrFil.NoMetadata    := True;
  QrFil.SQLConnection := usrvvars.db;

  usrvvars.db.StartTransaction(td);

  QrFil.StoredProcName:= 'PROCEDURE_SUA';

  QrFil.Params[00].AsInteger := parametro1;
  QrFil.Params[01].AsInteger := parametro2;
.... (quantos parâmetros você definiu na procedure ....
  Try
    if QrFil.ParamCheck Then
       QrFil.ExecProc;
  Except
    on e:Exception Do
    Begin
       Result := tMsgError('Mensagem');
       usrvvars.db.RollBack(td);
       Exit;
    End;
  End;

Atenciosamente.
 
Fabiana Fiorini Thomé
 
T.A.N - Tecnologia Aplicada a Negocios Ltda Rua Princesa Isabel, 238 - Salas
103 a 106 Joinville - SC CEP 89.201-904
Fones: (47) 3423-0841 - (48) 4052-8338 - (21) 3527-0475 - (51) 4063-8423
Soluções Para Proteção, Concessão, Recuperação de Créditos, Gestão e
Automação do Varejo CRA-SC Número 0969-J
 
Mérito Lojista pela CNDL em 2004
Mérito Lojista pela CNDL em 2005
 
Microsoft Registered Member





Mais detalhes sobre a lista de discussão lista