Hola Cesar, la idea es:
Si se ecuentra ese dato, comparamos la ip del user, si es la misma que la que esta guardada y siempre y cuando poner_bloq=False, devolvemos false, si es la misma que la que esta guardada y siempre y cuando poner_bloq=true, devolvemos false tambien, solo devolveremos TRUE cuando encontramos ese dato, y la ip del user es diferente de la que esta guardada, o no se encuentra ese dato, lo cual quiere decir que nadie ha entrado, hay tambien unas comparaciones de fechas y horas, y solo se guardan modificaciones, en el caso de que no exista ese dato o que en la comparacion de fecha y hora sea mayor que la predefinida, entonces si modificamos con los datos actuales, y asi para cada user que acceda a esa tabla
CREATE OR REPLACE FUNCTION p_bloqueos(n_his integer, poner_bloq boolean)
RETURNS boolean AS -------------Debe devolver true o False segun el estado de uno de los campoa que obtenemos en esa consulta
$BODY$
DECLARE conta int4; - esto es para un uso futuro
                   Resultado int;
BEGIN
     SELECT
          max(dato) INTO Resultado
     FROM
          bloq
     WHERE
         nhc = n_his;


    IF NOT FOUND THEN
RAISE EXCEPTION 'Error al Tratar de ACTUALIZAR un Registro ((%))', mpc_nombre;
        RETURN FALSE;
    END IF;

IF Resultado > 0 THEN --------aqui son las comparaciones de fechas y horas del sistema con las guardadas
        RETURN TRUE;
    ELSE
        RETURN FALSE;
    END IF
END;
$BODY$
 LANGUAGE 'plpgsql' VOLATILA

Aunque deberias retornar un conjunto de datos, por que estas haciendo un select, ya pero realmente solo me interesa devolver true o false en funcion de lo anteriormente expuesto
--
Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema

Santiago - Chile
_Un saludo
Suso
_
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a