[firebase-br] Problemas com SP - Urgênte
    Fernando Ricardo Vito Aquilini 
    fernando.aquilini em terra.com.br
       
    Seg Dez 20 21:49:09 -03 2004
    
    
  
Olá todos da lista.
Sou novo no que diz respeito a criação de SP no FB.
Meu problema é o seguinte:
Tenho uma tabela PESSOAS, com a seguinte estrutura
CODIGO	NOME
1		PAULO
2		CARLOS
3		JOÃO
Uma tabela SOFTWARES
CODIGO	DESCRICAO
1		LINUX
2		DELPHI
3		OFFICE
E uma tabela RELACAO, que é um relacionamento muitos-para-muitos das duas
tabelas anteriores
CODPES	CODSOFT
1		1
1		2
2		1
2		3
3		1
Quando executo
select A.NOME, B.DESCRICAO
from PESSOAS A, SOFTWARES B, RELACAO C
where A.CODIGO=C.CODPES AND B.CODIGO=C.CODSOFT
o FB me retorna a seguinte consulta:
PESSOA	SOFTWARE
PAULO		LINUX
PAULO		DELPHI
CARLOS	LINUX
CARLOS	OFFICE
JOÃO		LINUX
Até aí, minha estrutura parece estar OK e minha consulta também funcionando
corretamente.
Mas o meu problema é que preciso retornar a seguinte consulta:
PESSOA	SOFTWARE
PAULO		LINUX; DELPHI
CARLOS	LINUX; OFFICE
JOÃO		LINUX
Para isso, tentei criar a seguinte SP:
begin 
  /* Procedure Text */ 
  select count(CODSOFT) 
    from RELACAO 
    where (CODPES=:CODIGO) 
    into :CONTADOR; 
  I = 1; 
  NOME_SOFTWARES = ''; 
  while (I <= CONTADOR) do 
    begin 
      select b.SOFTWARE[:I] 
        from RELACAO a, SOFTWARES b 
        where (a.CODPES=:CODIGO) 
        and   (a.CODSOFT=b.CODIGO) 
        into :NOME_SOFTWARE; 
    end 
    NOME_SOFTWARES = NOME_SOFTWARES + NOME_SOFTWARE; 
    I = I+1; 
  suspend; 
end 
O FB compila a SP mas na hora de criar, ele me retorna a seguinte mensagem
de erro: Unsuccessful execution caused by a system error that precludes 
successful execution of subsequent statements. 
Dynamic SQL Error. 
expression evaluation not supported.
Por favor, alguém sabe o motivo desse erro?
Alguém já teve algum problema parecido e tem alguma solução mais fácil para
isso?
Agradeço a atenção, um abraço a todos.
Atenciosamente
Fernando Aquilini
    
    
Mais detalhes sobre a lista de discussão lista