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