[firebase-br] [aps] for execute statement

Saulo Lima mcikey em uol.com.br
Qua Nov 3 13:15:07 -03 2004


Olá pessoal,
    Estou tentando executar uma stored procedure e ele esta se comportando
de maneira estranha, por isso eu elaborei um exemplo e coloquei aqui para 
que alguém possa me ajudar, vamos ao caso:
    O que eu quero com essa SP é que eu possa trazer um produto específico 
ou todos. Quando eu chamando a SP passando um valor diferente de 4 aspas 
simples, significa que eu quero um produto específico, caso contrário quero 
todos.
    Quando eu executo a SP passando o parâmetro diferente de 4 aspas simples 
a SP  é executada perfeitamente, porém, quando faço o contrário a SP retorna 
nada que na minha concepção era pra retornar tudo.
    Agora se eu retirar a linha 2 e 3 a SP retorna tudo, o que é que está 
errado ? É alguma restrição do comando FOR EXECUTE STATEMENT ?

CREATE PROCEDURE EXEMPLO (EPRO_COD Varchar(7))
returns (PRO_COD  Varchar(5),
     PRO_DESC Varchar(60))
AS
     declare variable LSQL Varchar(500);
begin
/*1*/  LSQL = 'select PRO_COD, PRO_DESC from PRODUTOS ';
/*2*/  if (EPRO_COD <> '') then
/*3*/    LSQL = LSQL || 'where PRO_COD = ' || EPRO_COD;
/*4*/  for execute statement
/*5*/    LSQL
/*6*/  into
/*7*/    :PRO_COD,
/*8*/    :PRO_DESC
/*9*/  do
/*10*/ begin
/*11*/   suspend;
/*12*/ end

end

Grato pela atenção dada

Saulo
Programador
APS Informática
Recife - PE
www.apsinformatica.com.br





Mais detalhes sobre a lista de discussão lista