Annonce
Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).
En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.
#1 Fri 14 June 2019 13:59
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1606
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