[firebase-br] Fw: Problemas com SP.

Nilcemar P. Ferreira - Lista de Discussão Firebird firebird em inspell.com.br
Sex Out 15 09:24:59 -03 2004


Se vc usa o FB 1.5, faça o seguinte:
1- Crie uma variavel chamada VSQL, Varchar(100);

2- Substitua o código
DELETE FROM :VNOMETABELA WHERE NUMPESSOA <> 0;

por
 VSQL= 'DELETE FROM '|| :VNOMETABELA ||  'WHERE NUMPESSOA <> 0';

Depois use o comando EXECUTE STATEMENT VSQL....

Seu código ficará assim:

// Crie a variavel VSQL, Varchar(100);

 BEGIN
    VNOMETABELA = '';
    VCODIGO     = 0;

    FOR SELECT CODIGO, NOMETABELA
        FROM tabelas
        ORDER BY PD, CODIGO
        INTO :VCODIGO, :VNOMETABELA DO
    BEGIN
       IF ( :VCODIGO = 0 ) THEN BEGIN
          vSQL= 'DELETE FROM ' || :VNOMETABELA || 'WHERE NUMPESSOA <> 0';
       END ELSE BEGIN
          vSQL= 'DELETE FROM ' || :VNOMETABELA ;
       END
       EXECUTE STATEMENT vSQL;
    END
    suspend;
 END

No FB 1.5 vc pode criar SQL´s dinâmicos com o comando execute statement.
Muito útil....
Espero ter ajudado.

Nilcemar de Paula Ferreira
Supervisor de TI
Inspell Tecnologia
www.inspell.com.br
email para essa lista: firebird em inspell.com.br

-------------------------------------------------------------------------





----- Original Message ----- 
From: "Tiago Sartori Costa - YAHOO" <sartori_bra em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, October 15, 2004 9:06 AM
Subject: [firebase-br] Fw: Problemas com SP.


> Por Favor.... Alguém me ajude???????????
>
>
>
> > Boa tarde,
> >
> > Gostaria através de uma variável excutar um comando em SQL dentro de uma
> SP.
> >
> > Ex.:
> >
> > BEGIN
> >    VNOMETABELA = '';
> >    VCODIGO     = 0;
> >
> >    FOR SELECT CODIGO, NOMETABELA
> >        FROM tabelas
> >        ORDER BY PD, CODIGO
> >        INTO :VCODIGO, :VNOMETABELA DO
> >    BEGIN
> >       IF ( :VCODIGO = 0 ) THEN BEGIN
> >          DELETE FROM :VNOMETABELA WHERE NUMPESSOA <> 0;
> >       END ELSE BEGIN
> >          DELETE FROM :VNOMETABELA;
> >       END
> >    END
> >    suspend;
> > END
> >
> > Esta rotina não está funcionando, ocorre erro!!!!..... alguém pode me
> ajudar
> > pro favor????????
> >
> >
> > Tiago.
> >
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br)
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>






Mais detalhes sobre a lista de discussão lista