[firebase-br] SP para deletar com verficacao

Ricardo Ferreira Sobrinho ricardoif em gmail.com
Seg Jan 28 16:17:06 -03 2008


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



Mais detalhes sobre a lista de discussão lista