[firebase-br] Receber Exception de SP com Select

Carlos Andrade krlosgilson em gmail.com
Qui Jan 26 15:04:24 -03 2017


Olá a todos! A minha dúvida pode ser meio off-topic, mas sinceramente 
não sei mais a quem recorrer...

Minha SP retorna alguns registros se os parâmetros de entrada forem 
válidos. A mesma faz uma verificação se o usuário logado na sessão do 
PHP é realmente o proprietário do registro, caso contrário, a SP retorna 
uma Exception da seguinte forma:

-- Exception
CREATE EXCEPTION ERRO_003 'Registro não pertence ao cliente.';
-- Fim (Exception)

-- SP
CREATE OR ALTER PROCEDURE SP_VENDAS (
     iidvenda integer,
     iidcliente integer)
returns (
     odata date,
     ovalor numeric(15,2))
as
begin
   if ((select ID_CLIENTE from VENDAS where (ID =:iidvenda)) <> 
:iidcliente) then
     exception ERRO_003;

   select DATA, VALOR from VENDAS
   where (ID =:iidvenda)
   into :ODATA, :OVALOR;

   suspend;
end
-- Fim(SP)

Fazendo o Select através do IBexpert, a Exception é gerada normalmente 
quando é informado o código do cliente que não pertence à venda que iria 
retornar.

O Problema é que no PHP, a Exception não é retornada, percebe-se que a 
Exception ocorreu porque não retorna nenhum registro, mas também não 
recebo a mensagem do erro. Creio que também não seja erro no meu script 
PHP, pois quando chamo a procedure desta forma: "execute procedure 
SP_VENDAS(1,1)", a Exception é gerada normalmente, mas o que estou 
precisando é fazer uma seleção assim: "select ODATA, OVALOR from 
SP_VENDAS(1,1)".

Alguma idéia de como eu poderia alterar a SP para que seja realmente 
enviada a mensagem do erro para o PHP?




Mais detalhes sobre a lista de discussão lista