RES: [firebase-br] Problemas com SP - Urgênte - Me ajude Cantu....

Fernando Ricardo Vito Aquilini fernando.aquilini em terra.com.br
Qua Dez 22 20:51:05 -03 2004


Carlos, obrigado pela ajuda...
Mas agora surgiram dois novos problemas...

1º - Quando vou executar a procedure, utilizando o comando "execute
procedure NOME_PROCEDURE(codpes)", o bf me retorna a seguinte mensagem de
erro:
"multiple rows in singleton select"
Pesquisei e ví que o problema é que ele está retornando mais de uma linha
nesta execução. Pela lógica, não deveria não é?

2º - Eu tentei criar uma view, de dois campos, onde um deles é o código que
passo como parâmetro para a procedure, e o segundo campo a própria
procedure, como o código como parâmetro:
create view vSoftwares (Codigo, Softwares) as
select codpes, nome_procedure(codpes).
Pelo que ví isso também não é possível.

Alguém sabe de alguma solução para este problema e poderia me ajudar...

Bom, é isso...
Fico por aqui...

Agradeço a atneção de todos...
[]'s

Fernando Aquilini.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Carlos Fernando von Groll
Enviada em: terça-feira, 21 de dezembro de 2004 02:46
Para: FireBase
Assunto: Re: [firebase-br] Problemas com SP - Urgênte


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


______________________________________________
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

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 15/12/2004 / Versão: 4.4.00 -
Dat 4415 Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/








Mais detalhes sobre a lista de discussão lista