Fórum o que ha de errado??? #54926

24/01/2006

0

criei uma procedure para validar o usuario so que não retorna o acesso negado, quando informo um usuario inesistente

CREATE PROCEDURE AUTENTICACAO (
I_EMP INTEGER,
I_USU VARCHAR(10),
I_SEN VARCHAR(15))
RETURNS (
R_USU VARCHAR(10),
R_COD_FUN INTEGER)
AS
begin
FOR
SELECT
FUN_CODIGO,
FUN_USUARIO

FROM funcionario

WHERE FUN_USUARIO = :i_usu and
FUN_SENHA = :i_sen
into :r_cod_fun,
:r_usu
DO
BEGIN
IF (:r_usu IS NULL) THEN
BEGIN
exception ACESSO_NEGADO;
suspend;
END
else
begin
suspend;
end
END
end


Uiliangurjon

Uiliangurjon

Responder

Posts

24/01/2006

Emerson Nascimento

tente assim:
create procedure AUTENTICACAO (
    I_EMP INTEGER,
    I_USU VARCHAR(10),
    I_SEN VARCHAR(15))
returns (
    R_USU VARCHAR(10),
    R_COD_FUN INTEGER)
as
begin 
  for
    select
      FUN_CODIGO, 
      FUN_USUARIO
    from
      FUNCIONARIO
    where
      FUN_USUARIO = :i_usu
      and FUN_SENHA = :i_sen
      and FUN_EMPRESA = :i_emp
  into
    :r_cod_fun, :r_usu
  do
    suspend;

  if (:r_usu is null) then
  begin
    exception ACESSO_NEGADO;
    suspend; // esse suspend é realmente necessário?
    // se esse suspend for retirado, retire também o
    // begin..end, pois não será mais necessário 
  end
end



Responder

Gostei + 0

24/01/2006

Uiliangurjon

Muito Obrigado!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar