Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

Pied de page des forums

Powered by FluxBB