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