[firebase-br] Problemas com SP - Urgênte

Carlos Fernando von Groll mameluke em pop.com.br
Ter Dez 21 02:45:46 -03 2004


tenta isso:

ao invés de     NOME_SOFTWARES = NOME_SOFTWARES + NOME_SOFTWARE;
faça    NOME_SOFTWARES = NOME_SOFTWARES || NOME_SOFTWARE;


> 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
>
>
>
> ______________________________________________
> 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