Re: [firebase-br] Fw: Problemas com a Execução de uma SP.

Nilton Souza ntn em bbs2.sul.com.br
Ter Out 19 14:29:21 -03 2004


Olá Tiago,

Eu fiz uns testes aqui no meu Firebird 1.5 desta forma:

1. CRIEI UMA TABELA CHAMADA "tabelas" COM ESTA ESTRUTURA:

    CREATE TABLE TABELAS (
      CODIGO INTEGER,
      NOMETABELA VARCHAR(31),
      PD INTEGER,
      NUMPESSOA INTEGER
    );

2. POPULEI ESTA TABELA COM ALGUNS REGISTROS:

    INSERT INTO TABELAS VALUES (1, 'TABELAS', 1, 10);
    INSERT INTO TABELAS VALUES (2, 'TABELAS', 2, 0);
    INSERT INTO TABELAS VALUES (3, 'TABELAS', 3, 1);

3. CRIEI A SUA PROCEDURE DESTA FORMA (CONFIRME SE É ISSO MESMO):

    SET TERM !! ;
    CREATE PROCEDURE PROCEDURE_TESTE (
        VCODIGO INTEGER)
    AS
    DECLARE VARIABLE VCOMANDO VARCHAR(255);
    DECLARE VARIABLE VNOMETABELA VARCHAR(31);
    DECLARE VARIABLE VCONTADOR INTEGER;
    BEGIN
       VCOMANDO    = '';
       VNOMETABELA = '';
       VCONTADOR   = 0;

       SELECT COUNT(*) AS TOTAL
       FROM tabelas
       WHERE PD < 2 AND CODIGO = :VCODIGO
       INTO :VCONTADOR;

       If (:VCONTADOR > 0) THEN
       BEGIN
          SELECT FIRST(1) NOMETABELA
          FROM tabelas
          WHERE PD < 2 AND CODIGO = :VCODIGO
          INTO :VNOMETABELA;

          IF ( :VCODIGO = 0 ) THEN
          BEGIN
             VCOMANDO = 'DELETE FROM ' || :VNOMETABELA || ' WHERE NUMPESSOA
<> 0';
          END
          ELSE
          BEGIN
             VCOMANDO = 'DELETE FROM ' || :VNOMETABELA;
          END

          EXECUTE STATEMENT(:VCOMANDO);
       END
    END !!
    SET TERM ; !!

4. EXECUTEI A PROCEDURE (PELO IBEXPERT):

    EXECUTE PROCEDURE PROCEDURE_TESTE(1);


O resultado final é que ele apaga todos os registros da tabela "TABELAS", ou
seja está funcionando.

Você disse que no IBEXPERT você chegou até a depurar a sua procedure e que
tudo funcionava corretamente, certo ? Então se no IBEXPERT está ok, será que
o problema não está nos componentes que vc usa para acessar o banco ?

[]'s
Nilton Souza

----- Original Message -----
From: "Tiago Sartori Costa - YAHOO" <sartori_bra em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, October 19, 2004 3:33 PM
Subject: Re: [firebase-br] Fw: Problemas com a Execução de uma SP.


> Nilton,
>
> segue o codigo abaixo:
>
> BEGIN
>    VCOMANDO    = '';
>    VNOMETABELA = '';
>    VCONTADOR   = 0;
>
>    SELECT COUNT( * ) AS TOTAL
>    FROM tabelas
>    WHERE PD < 2 AND CODIGO = :VCODIGO
>    INTO :VCONTADOR;
>
>    If ( :VCONTADOR > 0 ) THEN BEGIN
>       SELECT FIRST(1) NOMETABELA
>       FROM tabelas
>       WHERE PD < 2 AND CODIGO = :VCODIGO
>       INTO :VNOMETABELA;
>       IF ( :VCODIGO = 0 ) THEN BEGIN
>          VCOMANDO = 'SELECT * FROM ' || :VNOMETABELA || ' WHERE NUMPESSOA
<>
> 0';
>       END ELSE BEGIN
>          VCOMANDO = 'SELECT * FROM ' || :VNOMETABELA;
>       END
>       EXECUTE STATEMENT( :VCOMANDO );
>    END
> END
>
> Tiago.
>
>
> ----- Original Message -----
> From: "Nilton Souza" <ntn em bbs2.sul.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, October 19, 2004 8:55 AM
> Subject: Re: [firebase-br] Fw: Problemas com a Execução de uma SP.
>
>
> Olá Tiago,
>
> Já foram tantos reply's que não tem como saber se o código da sua
procedure
> está completo, teria como vc postar novamente ?
>
> []'s
> Nilton Souza
>
> ----- Original Message -----
> From: "Tiago Sartori Costa - YAHOO" <sartori_bra em yahoo.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, October 19, 2004 10:39 AM
> Subject: Re: [firebase-br] Fw: Problemas com a Execução de uma SP.
>
>
> > Nilton,
> >
> > Nada cara, eu tentei e não vai!!!! O que deve estar errado??
> >
> > Tiago.
> >
> >
> > ----- Original Message -----
> > From: "Nilton Souza" <ntn em bbs2.sul.com.br>
> > To: "FireBase" <lista em firebase.com.br>
> > Sent: Tuesday, October 19, 2004 8:24 AM
> > Subject: Re: [firebase-br] Fw: Problemas com a Execução de uma SP.
> >
> >
> > Olá Tiago,
> >
> > Você já tentou executar assim (observe o dois-pontos no início da
> variável):
> >
> > EXECUTE STATEMENT( :VCOMANDO );
> >
> > []'s
> > Nilton Souza
> >
> > ----- Original Message -----
> > From: "Tiago Sartori Costa - YAHOO" <sartori_bra em yahoo.com.br>
> > To: "Carlos H. Cantu" <listas em warmboot.com.br>; "FireBase"
> > <lista em firebase.com.br>
> > Sent: Tuesday, October 19, 2004 9:50 AM
> > Subject: Re: [firebase-br] Fw: Problemas com a Execução de uma SP.
> >
> >
> > > Cantu,
> > >
> > > Já executei sem os parenteses!!! E debuguei no IBExpert!!
> > >
> > > Continua com problema!!!
> > > Vc pode me ajudar??
> > >
> > > Tiago.
> > >
> > > ----- Original Message -----
> > > From: "Carlos H. Cantu" <listas em warmboot.com.br>
> > > To: "FireBase" <lista em firebase.com.br>
> > > Sent: Monday, October 18, 2004 7:14 PM
> > > Subject: Re: [firebase-br] Fw: Problemas com a Execução de uma SP.
> > >
> > >
> > > Você debugou onde?
> > >
> > > Já exprimentou tirar o parenteses do execute statement?
> > >
> > > []s
> > > Cantu
> > > http://www.warmboot.com.br
> > > FireBase - http://www.FireBase.com.br
> > >
> > > TSCY> Alguém me ajude!!!!!!!
> > >
> > > TSCY> Turma, alguém pode me ajudar?
> > > >>
> > > >> Estou excutando a SP abaixo e ela não está excluindo os registros.
Já
> > > >> debuguei a rotina e está fazendo tudo certo, más na hora que
consulto
> a
> > > >> tabela os registros ainda estão lá!!! É como se a operação não
> tivesse
> > > >> comitado ou não tivesse executada a rotina EXECUTE STATEMENT!
> > > >>
> > > >> Por favor, alguém me dê uma luz!!!!!!!
> > > >>
> > > >>
> > > >>
> > > >> BEGIN
> > > >>    VCOMANDO    = '';
> > > >>    VNOMETABELA = '';
> > > >>    VCONTADOR   = 0;
> > > >>
> > > >>    SELECT COUNT( * ) AS TOTAL
> > > >>    FROM tabelas
> > > >>    WHERE PD < 2 AND CODIGO = :VCODIGO
> > > >>    INTO :VCONTADOR;
> > > >>
> > > >>    If ( :VCONTADOR > 0 ) THEN BEGIN
> > > >>       SELECT FIRST(1) NOMETABELA
> > > >>       FROM tabelas
> > > >>       WHERE PD < 2 AND CODIGO = :VCODIGO
> > > >>       INTO :VNOMETABELA;
> > > >>       IF ( :VCODIGO = 0 ) THEN BEGIN
> > > >>          VCOMANDO = 'DELETE FROM ' || :VNOMETABELA || ' WHERE
> NUMPESSOA
> > > <>
> > > >> 0';
> > > >>       END ELSE BEGIN
> > > >>          VCOMANDO = 'DELETE FROM ' || :VNOMETABELA;
> > > >>       END
> > > >>       EXECUTE STATEMENT( VCOMANDO );
> > > >>    END
> > > >> END
> > > >>
> > > >> Obrigado
> > > >>
> > > >> Tiago.
> > > >>
> > >
> > >
> > > TSCY> ______________________________________________
> > > TSCY> FireBase-BR (www.firebase.com.br)
> > > TSCY> Para editar sua configuração na lista, use o endereço
> > > TSCY>
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > >
> > >
> > > ______________________________________________
> > > 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
> > >
> > >
> > > ______________________________________________
> > > 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
> > >
> >
> >
> > ______________________________________________
> > 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
> >
> >
> > ______________________________________________
> > 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
> >
>
>
> ______________________________________________
> 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
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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