[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