[firebase-br] Criacao de Triggers e Stored em tempo de execucao
Vanderson
vanderson em tisul.com.br
Qua Jan 11 16:55:20 -03 2012
Boa tarde,
Estou tentando criar uma trigger em tempo de execução, porém está gerando o erro
"General SQL error.Token unknown - line 10, column 8?", mas é só com essa
trigger que tem "into" e "for" encadeado e no ibexpert cria normalmente e
funciona corretamente, utilizo o sqlscript e delphi 6.
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
Mais detalhes sobre a lista de discussão lista