[firebase-br] Store procedure

John Kennedy johnbh3 em gmail.com
Qui Nov 3 14:58:36 -03 2005


Observe que a mensagem enviado por Denis no inicio ele não informava
que existia mais de um telefone.

Mas esta valendo, até eu enviar o exemplo para ninguém tinha
manifestado em ajudar, o máximo que retornos que o amigo Denis obteve
foi usa, uma View, ou tipo assim use o First..

Eu sem ter nenhum tabela de aluno ou telefone, me disponibilizei de
criar uma SP.

Observe uma coisa, sempre quando se e feita alguma pergunta e
respondido de maneira que acaba não ajudando muito, quando alguém
resolve realmente criar o exemplo, o forum retorna fazendo as criticas
que não concorda, etc, etc.

Se tem uma coisa que aprendi, criticar e facil, ver o que esta pronto
e melhorar e muito... facil...

As vezes você ve alguém ganhando dinheiro por uma coisa tão facil, mas
um facil que você não tentou.


Abraço.











Em 02/11/05, RedDevil<reddevil em reddevil.eti.br> escreveu:
> ola pessoal.
> tudo bem com voces?
> sincerely, espero que sim...
> ;o)
>
> o post que eu fiz em resposta a msg do Luis Carlos me levou a dar um look no
> livro do Mr. Cantu, que foi a unica literatura que eu usei para pegar o
> principio da coisa no que diz respeito a criaçao de SP's (alias, para falar a
> verdade, eu aprendi SP's com um artigo do Mr. Cantu na ClubeDelphi, artigo esse
> que foi revisado e ampliado para constar no livro Firebird Essencial...;o), e
> olhando o livro eu percebi que existia um erro na SP do John para o Denis que eu
> postei antes...
>
> tipow assim, da maneira que eu fiz antes, quando a gente fizesse a chamada a SP
> daria o erro "multiples rows in a singleton select" (algo parecido...;o), pois
> eh necessario usar o "FIRST" para que um select daqueles retorne uma unica
> linha... entao eu refiz a SP, testei no IBExpert e cheguei a isso ae abaixo...
> dessa maneira sim retorna o telefone do aluno, os dois telefones, tres, quatro
> ou ate cinco telefones que existam cadastrados:
>
> /* ------------------------------- inicio da
> SP --------------------------------------- */
> CREATE PROCEDURE TESTE_TEL ( COD_ALUNO VARCHAR (10) )
> RETURNS (
>     CODIGO VARCHAR (10),
>     NOME_ALUNO VARCHAR (100),
>     IDADE_ALUNO VARCHAR (30),
>     NUM_TEL1 VARCHAR(10),
>     NUM_TEL2 VARCHAR(10),
>     NUM_TEL3 VARCHAR(10),
>     NUM_TEL4 VARCHAR(10),
>     NUM_TEL5 VARCHAR(10)
> )
> AS
> BEGIN
>   For Select ALUNO.COD_ALUNO, ALUNO.NOM_ALUNO, ALUNO.IDADE_ALUNO
>       From ALUNO
>       Where (ALUNO.COD_ALUNO = :COD_ALUNO)
>       Into :CODIGO, :NOME_ALUNO, :IDADE_ALUNO
>   Do
>   Begin
>
>       Select first 1 TELEFONE.TEL from TELEFONE
>       Where TELEFONE.COD_ALUNO = :COD_ALUNO
>       Into :NUM_TEL1;
>
>       Select first 1 TELEFONE.TEL from TELEFONE
>       Where TELEFONE.COD_ALUNO = :COD_ALUNO
>       and telefone.tel <> :num_tel1
>       Into :NUM_TEL2;
>
>       Select first 1 TELEFONE.TEL from TELEFONE
>       Where TELEFONE.COD_ALUNO = :COD_ALUNO
>       and telefone.tel <> :num_tel1
>       and telefone.tel <> :num_tel2
>       Into :NUM_TEL3;
>
>       Select first 1 TELEFONE.TEL from TELEFONE
>       Where TELEFONE.COD_ALUNO = :COD_ALUNO
>       and telefone.tel <> :num_tel1
>       and telefone.tel <> :num_tel2
>       and telefone.tel <> :num_tel3
>       Into :NUM_TEL4;
>
>       Select first 1 TELEFONE.TEL from TELEFONE
>       Where TELEFONE.COD_ALUNO = :COD_ALUNO
>       and telefone.tel <> :num_tel1
>       and telefone.tel <> :num_tel2
>       and telefone.tel <> :num_tel3
>       and telefone.tel <> :num_tel4
>       Into :NUM_TEL5;
>
>    suspend;
>   END
> END
> /* ------------- final da SP ------------------------- */
>
>
> []s
> força sempre!!!
> ate +++
>
> --
> Luiz "RedDevil" Stefanski - Linux User #399026
> http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
> exemplos e dicas sobre o IBObjects:
> http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
> compilaçao/instalaçao do IBObjects sabor BPG:
> http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630
>
>
>
> ______________________________________________
> 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
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista