[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