[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