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

Wellington Melo wellmsilva em gmail.com
Sáb Mar 21 12:10:52 -03 2009


olá Carlos, não sei se vai ti ajudar mas tenta assim:

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;

DECLARE VARIABLE CNPJ varchar(18);-- campo CNJP


BEGIN
select CNPJ from TBCADCONT where CCE = NEW.CCE into :cnjp;


IF (NEW.ENVIACCE = 'S') then
begin
 INSERT INTO TBCADREMESSA(CCE, IDPROTOCOLO, AUTOS) values(:cnjp,
NEW.IDPROTOCOLO, NEW.TAUTOS);
end
...


    Em todas as subquery você declara e atribui as variaveis e depois joga
as variaveis no lugar das subquerys.



2009/3/19 Carlos Marcelo Filgueiras <carlos-mf em sefaz.go.gov.br>

>
> 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
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista