PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Aplicação para criar trigger #411521

13/01/2012

0

Olá,

Tenho uma aplicação em delphi 6, utilizo o firebird 2.1. Criei uma trigger com variáveis pelo IBExpert e funciona perfeitamente, porém minha aplicação de atualização do banco não consegue cria-la nos bancos dos clientes, utilizo o componente SQLScript. Gostaria de saber se tem algum outro componente ou que necessito configurar para criar a trigger abaixo de forma dinâmica.

CREATE OR ALTER trigger cria_saldo_inicial_empresa for empresa
active after insert position 0
AS
declare variable cod_produto integer;
declare variable tipo_estoque integer;
declare variable centro_armaz integer;
begin
for select PR.PRODICOD
from PRODUTO PR
into :cod_produto
do begin
for select TE.TPESICOD
from TIPOESTOQUE TE
into :tipo_estoque
do begin
for select CE.CEESICOD
from CENTROESTOQUE CE
into :centro_armaz
do begin
insert into PRODUTOSALDO(EMPRICOD, PRODICOD, TPESICOD, CEESICOD, PSLDN3QTDE, PSLDN3QTDMIN, PSLDN3QTDMAX, PENDENTE, REGISTRO)
values(new.empricod, :cod_produto, :tipo_estoque, :centro_armaz, 0, 0, 0, S, current_timestamp);
end

if (centro_armaz is null) then
begin
centro_armaz = 1;

insert into PRODUTOSALDO(EMPRICOD, PRODICOD, TPESICOD, CEESICOD, PSLDN3QTDE, PSLDN3QTDMIN, PSLDN3QTDMAX, PENDENTE, REGISTRO)
values(new.empricod, :cod_produto, :tipo_estoque, :centro_armaz, 0, 0, 0, S, current_timestamp);

centro_armaz = null;
end
end

if (tipo_estoque is null) then
begin
tipo_estoque = 1;

for select CE.CEESICOD
from CENTROESTOQUE CE
into :centro_armaz
do begin
insert into PRODUTOSALDO(EMPRICOD, PRODICOD, TPESICOD, CEESICOD, PSLDN3QTDE, PSLDN3QTDMIN, PSLDN3QTDMAX, PENDENTE, REGISTRO)
values(new.empricod, :cod_produto, :tipo_estoque, :centro_armaz, 0, 0, 0, S, current_timestamp);
end

if (centro_armaz is null) then
begin
centro_armaz = 1;

insert into PRODUTOSALDO(EMPRICOD, PRODICOD, TPESICOD, CEESICOD, PSLDN3QTDE, PSLDN3QTDMIN, PSLDN3QTDMAX, PENDENTE, REGISTRO)
values(new.empricod, :cod_produto, :tipo_estoque, :centro_armaz, 0, 0, 0, S, current_timestamp);

centro_armaz = null;
end

tipo_estoque = null;
end
end
end


Att.,
Gustavo Henkel

Gustavo Henkel

Responder

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

Aceitar