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

Printemps des cartes 2024

#1 Wed 07 September 2016 11:33

gwen
Participant actif
Lieu: Guingamp
Date d'inscription: 14 Nov 2005
Messages: 72
Site web

QGIS: Probleme insert - update vue depuis la version 2.14.3

Bonjour,

Nous sommes utilisateurs de qgis depuis plusieurs année avec postgresql postgis pour l'insertion de donnée sans aucun soucis à partir de vue contenant des règles d'insert, d'update et de delete.

Depuis la version 2.14.3 nous rencontrons des problèmes pour l'insertion et mise à jour de données.

Qgis nous retourne comme message d'erreur :

You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause.


Ces mêmes vues sont utilisées pas d'autre applications sans aucun problème de la part de postgresql postgis. (FME- Veremap....)

Auriez vous des pistes pour résoudre ce problème?

Merci par avance, Bonne journée, Gwendal


___________________________________________________________
Voici une vue type pour l'insertion de donnée :

Code:

CREATE OR REPLACE VIEW aep.v_troncon AS 
 SELECT troncon.identifiant,
    troncon.code_insee,
    commune.texte AS commune,
    troncon.numero,
    troncon.secteur,
    troncon.materiau,
    troncon.car_materiau,
    troncon.diametre,
    troncon.diametre_int,
    troncon.diametre_ext,
    troncon.longueur_calc,
    troncon.type,
    troncon.fonction,
    troncon.pression,
    troncon.ecoulement,
    troncon.etg_pression,
    troncon.etg_sectorisation,
    troncon.etg_distribution,
    troncon.type_travaux,
    troncon.observation,
    troncon.profondeur,
    troncon.datepose,
    troncon.source,
    troncon.etat,
    troncon.entreprise,
    troncon.casse_tron,
    troncon.note_renou,
    troncon.periode,
    troncon.sous_perio,
    troncon.pvr,
    troncon.class_dict,
    troncon.creat,
    troncon.date_creat,
    troncon.maj,
    troncon.maj_date,
    troncon.geom,
    troncon.object_id,
    troncon.oid,
    degrees(st_azimuth(st_startpoint(troncon.geom), st_endpoint(troncon.geom))) AS angle_line
   FROM aep.troncon,
    cadastre.commune
  WHERE commune.id_com = (('220'::text || substr(troncon.code_insee::text, 3, 3))::bpchar)
  ORDER BY troncon.materiau DESC, troncon.diametre DESC;


-- Rule: delete_v_troncon ON aep.v_troncon

-- DROP RULE delete_v_troncon ON aep.v_troncon;

CREATE OR REPLACE RULE delete_v_troncon AS
    ON DELETE TO aep.v_troncon DO INSTEAD  DELETE FROM aep.troncon
  WHERE troncon.object_id = old.object_id;

-- Rule: insert_v_troncon ON aep.v_troncon

-- DROP RULE insert_v_troncon ON aep.v_troncon;

CREATE OR REPLACE RULE insert_v_troncon AS
    ON INSERT TO aep.v_troncon DO INSTEAD  INSERT INTO aep.troncon (identifiant, code_insee, numero, secteur, materiau, car_materiau, diametre, diametre_int, diametre_ext, type, fonction, pression, ecoulement, observation, etg_pression, etg_distribution, etg_sectorisation, type_travaux, longueur_calc, profondeur, datepose, source, etat, entreprise, casse_tron, note_renou, periode, sous_perio, pvr, class_dict, creat, date_creat, geom, object_id)
  VALUES (new.identifiant, new.code_insee, new.numero, new.secteur, new.materiau, new.car_materiau, new.diametre, new.diametre_int, new.diametre_ext, new.type, new.fonction, new.pression, new.ecoulement, new.observation, new.etg_pression, new.etg_distribution, new.etg_sectorisation, new.type_travaux, st_length(new.geom), new.profondeur, new.datepose, new.source, new.etat, new.entreprise, new.casse_tron, new.note_renou, new.periode, new.sous_perio, new.pvr, new.class_dict, "current_user"()::text, 'now'::text::date, new.geom, nextval('seq_common'::regclass));

-- Rule: update_v_troncon ON aep.v_troncon

-- DROP RULE update_v_troncon ON aep.v_troncon;

CREATE OR REPLACE RULE update_v_troncon AS
    ON UPDATE TO aep.v_troncon DO INSTEAD  UPDATE aep.troncon SET identifiant = new.identifiant, code_insee = new.code_insee, numero = new.numero, secteur = new.secteur, materiau = new.materiau, car_materiau = new.car_materiau, diametre = new.diametre, diametre_int = new.diametre_int, diametre_ext = new.diametre_ext, type = new.type, fonction = new.fonction, pression = new.pression, ecoulement = new.ecoulement, observation = new.observation, etg_pression = new.etg_pression, etg_distribution = new.etg_distribution, etg_sectorisation = new.etg_sectorisation, type_travaux = new.type_travaux, longueur_calc = st_length(new.geom), profondeur = new.profondeur, datepose = new.datepose, source = new.source, etat = new.etat, entreprise = new.entreprise, casse_tron = new.casse_tron, note_renou = new.note_renou, periode = new.periode, sous_perio = new.sous_perio, pvr = new.pvr, class_dict = new.class_dict, maj = "current_user"()::text, maj_date = 'now'::text::date, geom = new.geom
  WHERE troncon.object_id = new.object_id;

Hors ligne

 

#2 Thu 29 September 2016 12:28

gwen
Participant actif
Lieu: Guingamp
Date d'inscription: 14 Nov 2005
Messages: 72
Site web

Re: QGIS: Probleme insert - update vue depuis la version 2.14.3

Bonjour,

Je me répond je suis passé sur la version 2.16.3 et de dev osgeo 2.17 et tout semble en ordre

Mystère...

;-)

Gwendal

Hors ligne

 

Pied de page des forums

Powered by FluxBB