[firebase-br] trigger com inserção de vários registros resultados de select

Carlos Marcelo Filgueiras carlos-mf em sefaz.go.gov.br
Qui Mar 19 17:40:33 -03 2009


COMO FAZER UM TRIGGER +/- ASSIM: 
não sei como fazer para que dentro do WHILE .. DO sejam inseridos os próximos registros da tabela TBCADSOCIO 
uso firebird 2.1 . 
..... 
-- 
AFTER INSERT POSITION 0 
AS 
DECLARE VARIABLE VCCE varchar(18); 
DECLARE VARIABLE VPRO integer; 
DECLARE VARIABLE VAUT varchar(255); 
DECLARE VARIABLE I integer; 
DECLARE VARIABLE Y integer; 
BEGIN 
IF (NEW.ENVIACCE = 'S') then 
begin 
INSERT INTO TBCADREMESSA(CCE, IDPROTOCOLO, AUTOS) values((select CNPJ from TBCADCONT where CCE = NEW.CCE), NEW.IDPROTOCOLO, NEW.TAUTOS); 
end 
IF (NEW.ENVIASOC = 'S') then 
begin 
VPRO = new.IDPROTOCOLO; 
VAUT = new.TAUTOS; 
Y = 0; 
for select (select count(CPFCNPJ) from TBCADSOCIO where CPFCNPJ is not null and CCEREL = NEW.CCE) as cont, CPFCNPJ from TBCADSOCIO where CPFCNPJ is not null and CCEREL = NEW.CCE 
into :I, :VCCE do 
begin 
WHILE (Y < I) DO 
BEGIN 
Y = Y + 1; 
INSERT INTO TBCADREMESSA(CCE, IDPROTOCOLO, AUTOS) values(:VCCE, :VPRO, :VAUT); 
end 
end 
end 
IF (NEW.ENVIACNT = 'S') then 
begin 
INSERT INTO TBCADREMESSA(CCE, IDPROTOCOLO, AUTOS) values((select CPFCNPJ from TBCADCONTADOR where CPFCNPJ = (SELECT CONTADOR FROM TBCADCONT WHERE CCE = NEW.CCE)), NEW.IDPROTOCOLO, NEW.TAUTOS); 
end 
END^ 
-- 
..... 
desde já muito obrigado! 
Krlos 



Mais detalhes sobre a lista de discussão lista