El 26 de julio de 2009 15:56, suso <jlcu...@terra.es> escribió: > 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
todo eso debes hacer con consultas e IF dentro de la funcion, pero creo que con el ejemplo que te envie te funcionara todo bien. 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 boolean; BEGIN SELECT poner_bloq 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; HACER CONSULTAS PARA TODO ESO QUE INDICASTE IP - FECHAS - ETC.. RETURN Resultado END; $BODY$ LANGUAGE 'plpgsql' VOLATILA Espero que te funcione.. -- Cesar Erices Vergara Ingeniero en Gestión Informática Analista de Sistema Santiago - Chile