viernes, 29 de junio de 2012
PostgreSql: Función login en postgres
Hola amigos les dejo otra función para validar el login y la clave de un usuario:
Tabla usuario
CREATE TABLE usuario
(
idusuario serial NOT NULL,
nom_ape character(150),
logacceso character(15),
clave character(32),
telef character(15),
correo character(25),
CONSTRAINT usuario_pkey PRIMARY KEY (idusuario)
)
Aquí está la función:
CREATE OR REPLACE FUNCTION user_acceso(_logacceso character,_clave character)
RETURNS SETOF "public"."usuario" AS
$BODY$
DECLARE
_select usuario;
_user character(15);
_clav character(32);
begin
select into _user logacceso from usuario where logacceso=_logacceso;
select into _clav clave from usuario where clave=_clave and logacceso=_logacceso;
IF _user = _logacceso THEN
IF _clav = _clave THEN
for _select in select * from usuario where logacceso=_logacceso and clave=_clave
loop
RETURN next _select;
end loop;
ELSE
RAISE EXCEPTION 'Clave incorrecta';
RETURN;
ROLLBACK;
END IF;
ELSE
RAISE EXCEPTION 'Usuario %',_logacceso||' no está registrado';-- || para concatenar
RETURN;
ROLLBACK;
END IF;
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Lo ejecutan de la siguiente manera:
SELECT * FROM user_acceso('tavo5','123')