#1 Fri 14 June 2019 13:59
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Pb objet métier dans Vmap (basé sur Mapserver)
Bonjour,
J'ai un objet métier lié à une vue "v_pav_bis" qui représente les Points d'Apport Volontaire de mon interco. Voici d'ailleurs le sql dans postgre:
-- View: dechet.v_pav_bis
-- DROP VIEW dechet.v_pav_bis;
CREATE OR REPLACE VIEW dechet.v_pav_bis AS
SELECT pav.id_pav,
pav.id_com,
pav.commune,
pav.no_colonne,
pav.denominat,
pav.geom
FROM dechet.pav,
s_cadastre.v_vmap_commune
WHERE pav.id_com::text ~ similar_escape(( SELECT "user".restriction
FROM s_vitis."user"
WHERE "user".login::name = "current_user"()), NULL::text) AND v_vmap_commune.id_com = pav.id_com::bpchar;
ALTER TABLE dechet.v_pav_bis
OWNER TO jcascales;
GRANT TRIGGER, REFERENCES, TRUNCATE, DELETE, UPDATE, SELECT ON TABLE dechet.v_pav_bis TO jcascales;
GRANT INSERT ON TABLE dechet.v_pav_bis TO jcascales WITH GRANT OPTION;
GRANT ALL ON TABLE dechet.v_pav_bis TO lunel_admin;
GRANT ALL ON TABLE dechet.v_pav_bis TO u_vitis;
GRANT SELECT ON TABLE dechet.v_pav_bis TO vmap_user;
-- Rule: delete_v_pav_bis ON dechet.v_pav_bis
-- DROP Rule delete_v_pav_bis ON dechet.v_pav_bis;
CREATE OR REPLACE RULE delete_v_pav_bis AS
ON DELETE TO dechet.v_pav_bis
DO INSTEAD
DELETE FROM dechet.pav
WHERE pav.id_pav = old.id_pav;
-- Rule: insert_v_pav_bis ON dechet.v_pav_bis
-- DROP Rule insert_v_pav_bis ON dechet.v_pav_bis;
CREATE OR REPLACE RULE insert_v_pav_bis AS
ON INSERT TO dechet.v_pav_bis
DO INSTEAD
INSERT INTO dechet.pav (id_pav, id_com, commune, no_colonne, denominat)
VALUES (new.id_pav, new.id_com, new.commune, new.no_colonne,new.denominat);
-- Rule: update_v_pav_bis ON dechet.v_pav_bis
-- DROP Rule update_v_pav_bis ON dechet.v_pav_bis;
CREATE OR REPLACE RULE update_v_pav_bis AS
ON UPDATE TO dechet.v_pav_bis
DO INSTEAD
UPDATE dechet.pav SET denominat = new.denominat
WHERE pav.id_pav = new.id_pav;
Lorsque je veux insérer un point, j'ai ce message d'erreur (en PJ)
Hors ligne
#2 Fri 14 June 2019 20:41
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 88
Re: Pb objet métier dans Vmap (basé sur Mapserver)
Bonsoir,
à priori c'est PostgreSQL qui envoi une erreur (ça n'a pas l'air lié à vMap directement). Pour en savoir plus, dans vMap allez dans l'option "Journaux" pour faire apparaître les logs et regardez dans le fichier "error.log"" il doit y avoir un message explicite (il vous faut être connecté avec un identifiant administrateur) ? Ce sera plus simple pour savoir l'origine de l'erreur.
Une dernière petite chose dans le rule insert à la fin je pense qu'il vaudrait mieux que vous passiez une clause RETURING car sinon il y a des risques que votre vue n'affiche pas le point (pour forcer la mise à jour de la vue, uniquement dans le rule insert).
Bon week-end.
Hors ligne