[firebase-br] SP para deletar com verficacao

Paulo S X Soares paulosoares.br em gmail.com
Seg Jan 28 19:16:29 -03 2008


Concordo com você, entretanto, abro duas questões para quem quiser comentar:

1) O MS SQL Server tem a função EXISTS, que pode ser testada diretamente no
IF. O Fb tem algo parecido?

2) Se em vez de contar os pedidos, que obrigatoriamente checa a tabela
inteira, usar um
SELECT FIRST 1 Id ... INTO :IdDoPedido, não seria mais econômico?



Em 28/01/08, Ricardo Ferreira Sobrinho <ricardoif em gmail.com> escreveu:
>
> Saudacoes a todos!
>
> "Nois traveis".
>
> Gostaria de saber a opnião de vocês à respeito da seguinte STORED
> PROCEDURE:
>
>
> Excluir um Vendedor da tabela de Vendedores, desde que seu ID não esteja
> atribuìdo a algum Pedido.
>
> ------------------------------------------------
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE SP_DELETE_VENDEDOR (
>     PID_VENDEDOR INTEGER)
> AS
> DECLARE VARIABLE VENDA_QUALQUER INTEGER;
> BEGIN
>
>     SELECT COUNT(id_vendedor)
>     FROM pedido
>     WHERE id_vendedor = :pid_vendedor
>     INTO :venda_qualquer;
>
>     IF (venda_qualquer > 0) THEN
>     BEGIN
>         EXCEPTION reatrib_pedido;
>         SUSPEND;
>     END
>
>     DELETE FROM vendedor
>     WHERE id_vendedor =: pid_vendedor;
>
>   SUSPEND;
> END^
>
> SET TERM ; ^
>
> GRANT SELECT ON PEDIDO TO PROCEDURE SP_DELETE_VENDEDOR;
>
> GRANT SELECT,DELETE ON VENDEDOR TO PROCEDURE SP_DELETE_VENDEDOR;
>
> GRANT EXECUTE ON PROCEDURE SP_DELETE_VENDEDOR TO SYSDBA;
> ------------------------------------------------
>
> Resolvi fazer a verificação antes da exclusão, pois assim, já sai logo do
> bloco.
> O código do livro que estou estudando é parecido, más com a verificação no
> final.
> Acho o meu modo com mais benefícios, como velocidade...
>
> --
> Cordialmente,
>
>
> Ricardo Ferreira Sobrinho
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
___________________________________
*** Paulo Sergio Xavier Soares ***
Skype: Allumo, E-mail: paulosoares.br em gmail.com, MSN: paulosxs em yahoo.com.br
Consultor em Informatica
Matematica - UEM

Obs: Se o seu leitor de e-mail não estiver configurado para emitir resposta
automática do recebimento, favor responder essa mensagem para o confirmar.



Mais detalhes sobre a lista de discussão lista