You are here:GeoTux»Geo-Foros»Triggers

Estadísticas

Invitados: 49
Usuarios registrados: 3174
Usuarios en línea:
-
Registrados hoy:
-

Registro

Redifusión (RSS)

Blogs y Noticias:
Recibe las actualizaciones en Geo-Noticias y Geo-Blogs

Recibir por e-mail
Recibir Geo-Noticias y Geo-Blogs por e-mail

¿Qué es esto?

Welcome, Guest
Username Password: Remember me
  • Page:
  • 1

TOPIC: Triggers

Triggers 13 Jul 2013 00:05 #1007

  • maxaval
  • OFFLINE
  • Visitante casual
  • Posts: 9
  • Karma: 0
Buenas Tardes soy bastante novato con esto de las bases de datos y los triggers y quisiera saber si pueden ayudarme he intentado ya y no logro el resultado deseado tengo una tabla en postgres llamado parcelario, la idea es crear algun metodo que valore si cambia el area de algun poligono (aumenta o disminuye) y el campo saldo_pendiente es mayor a 0 que no ejecute la consulta y que muestre un mensaje como: No se puede hacer la solicitud por que el inmueble tiene saldo pendiente" o algo asi si pudieran ayudarme les agradeceria mucho


Gracias de antemano

Re: Triggers 13 Jul 2013 03:27 #1008

  • tuxman
  • OFFLINE
  • Vive aquí
  • Posts: 285
  • Karma: 6
maxaval, te aconsejo que copies o adjuntes tus primeros intentos y si es posible se~nales por qué no te funcionan, de lo contrario básicamente estás esperando que alguien lo haga de ceros por ti, y eso casi seguramente no se va a dar.

Saludos

Re: Triggers 13 Jul 2013 04:49 #1009

  • maxaval
  • OFFLINE
  • Visitante casual
  • Posts: 9
  • Karma: 0
Tienes Razon Tuxman, y la verdad es que lo unico que espero es que me orienten ya que soy novato en esto de las bases de Datos Geoespaciales es otro mundo, pero como dije que lo habia intentado dejo el codigo del trigger que intente hacer:


Esta es la estructura de la Base de Datos:

CREATE TABLE parcelario
(
gid serial NOT NULL,
sector character varying(3),
clave character varying(10),
parcela character varying(50),
direccion character varying(254),
municipio character varying(254),
perimetro character varying(254),
propietario character varying(254),
the_geom geometry(Polygon) NOT NULL,
area double precision NOT NULL,
saldo_pendiente numeric(9,2) NOT NULL DEFAULT 0.00,
CONSTRAINT parcelario_pkey PRIMARY KEY (gid )
)
WITH (
OIDS=FALSE
);
ALTER TABLE parcelario
OWNER TO postgres;

CREATE TRIGGER calc_area
BEFORE INSERT OR UPDATE
ON parcelario
FOR EACH ROW
EXECUTE PROCEDURE parcelario_calc_area();


Y aqui esta el trigger que no me funciona:

CREATE OR REPLACE FUNCTION proteger_parcelario() RETURNS TRIGGER AS $proteger_parcelario$
DECLARE
BEGIN

IF NEW.shape_area <> OLD.shape_area AND OLD.saldo_pendiente > 0 THEN
RETURN NULL;

END IF;
END;
$proteger_parcelario$ LANGUAGE plpgsql;

CREATE TRIGGER proteger_parcelario BEFORE UPDATE OR DELETE
ON parcelario FOR EACH ROW
EXECUTE PROCEDURE proteger_parcelario();

Re: Triggers 13 Jul 2013 04:56 #1010

  • maxaval
  • OFFLINE
  • Visitante casual
  • Posts: 9
  • Karma: 0
Perdon copie mal el codigo dejo el correcto que no me funciona, las disculpas del caso pero e intentado hacerlo varias veces:



CREATE OR REPLACE FUNCTION proteger_parcelario() RETURNS TRIGGER AS $proteger_parcelario$
DECLARE
BEGIN

IF NEW.area <> OLD.area AND OLD.saldo_pendiente > 0 THEN
RETURN NULL;

END IF;
END;
$proteger_parcelario$ LANGUAGE plpgsql;

CREATE TRIGGER proteger_parcelario BEFORE UPDATE OR DELETE
ON parcelario FOR EACH ROW
EXECUTE PROCEDURE proteger_parcelario();

Re: Triggers 13 Jul 2013 05:26 #1011

  • maxaval
  • OFFLINE
  • Visitante casual
  • Posts: 9
  • Karma: 0
Este es el error que la Base me da cuando quiero modificar unicamente el campo saldo_pendiente sin modificar el area:

ERROR: control reached end of trigger procedure without RETURN
CONTEXT: PL/pgSQL function "proteger_parcelario"

Re: Triggers 15 Jul 2013 20:38 #1014

  • m3rcury
  • OFFLINE
  • Destacad@
  • Posts: 109
  • Karma: 5
  • Page:
  • 1
Time to create page: 0.52 seconds
 

¿Dónde nos leen?

Usuario aleatorio

Últimos comentarios