Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous vous proposons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#1 Fri 14 June 2019 13:59
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1647
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: 86
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