Pages: 1
- Sujet précédent - QGIS 1.7 : Edition de données PostGIS via QGIS impossible - Sujet suivant
#1 Thu 08 March 2012 15:59
- diletant2
- Participant occasionnel
- Date d'inscription: 10 Feb 2010
- Messages: 36
QGIS 1.7 : Edition de données PostGIS via QGIS impossible
Bonjour,
J'ai connecté QGIS à une base de données PostGIS.
Quand je passe en mode "édition", il m'est impossible de modifier des valeurs attributaires, que ce soir en passant par le formulaire d'une entité ou bien par la tables des attributs.
Dès que j'entre une valeur pour un champ, celui-ci reprend immédiatement sa valeur initiale (antérieure) avant ou après que j'ai pu sauvegarder ma modification.
Pourtant, mon utilisateur pour la connexion à la bdd est "admin", et les capacités affichées dans les métadonnées par QGIS sont : "Editing capabilities of this layer: Add Features, Delete Features, Change Attribute Values, Add Attributes, Delete Attributes, Fast Access to Features at ID, Change Geometries"
Si quelqu'un a une idée ?
Merci beaucoup
Hors ligne
#2 Fri 09 March 2012 09:41
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 726
Re: QGIS 1.7 : Edition de données PostGIS via QGIS impossible
Bonjour,
Peut-être un problème de propriétaire des bases PostGis ?
Hors ligne
#3 Fri 09 March 2012 10:04
Re: QGIS 1.7 : Edition de données PostGIS via QGIS impossible
Bonjour,
pour en savoir plus, il faut nous donner la définition de la table visée et ses droits vus depuis postgres (le schéma DDL "Create table.. GRANT ... )
Est-ce bien une table et non une vue?
Quelles versions de tout les outils?
régis
Hors ligne
#4 Fri 09 March 2012 12:17
- diletant2
- Participant occasionnel
- Date d'inscription: 10 Feb 2010
- Messages: 36
Re: QGIS 1.7 : Edition de données PostGIS via QGIS impossible
Bonjour,
J'utilise QGIS 1.7.4 et postGIS 8.4.
Le propriétaire de la base est un user appelé "postgres".
Voici le code DDL de la table PG visualisée dans QGIS :
Code:
CREATE TABLE schema.table ( var1 text, var2 text, var3 text, var4 integer, var5 integer, the_geom geometry, CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2), CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL), CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326) ) WITH (OIDS=FALSE); ALTER TABLE schema.table OWNER TO postgres; GRANT ALL ON TABLE schema.table TO postgres;
J'ai essayé tour à tour de modifier toutes les variables (numérique ou pas), via la table d'attributs ou bien via le formulaire individuel d'un objet.
La nouvelle valeur que je rentre n'est jamais sauvegardée dans la base, même quand je confirme la sauvegarde des modifications au moment où je désactive le mode "édition". Je n'arrive pas à savoir si c'est parce que les données sont relues dans PostGIS en permanence, ce qui annule ma saisie, ou bien si l'écriture dans la table est impossible.
En revanche, le mode "édition" fonctionne bien sur d'autres tables de la même base.
Merci beaucoup pour votre aide
Dernière modification par diletant2 (Fri 09 March 2012 13:31)
Hors ligne
#5 Fri 09 March 2012 13:42
Re: QGIS 1.7 : Edition de données PostGIS via QGIS impossible
Bonjour,
Je n'arrive pas à savoir si c'est parce que les données sont relues dans PostGIS en permanence, ce qui annule ma saisie, ou bien si l'écriture dans la table est impossible.
En revanche, le mode "édition" fonctionne bien sur d'autres tables de la même base.
Deux pistes :
1. quelles sont les différences entre les tables qui fonctionnent et celle-ci ?
2. activer les logs et regarder les requêtes qui ont été envoyée par QGIS
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#6 Fri 09 March 2012 15:21
- diletant2
- Participant occasionnel
- Date d'inscription: 10 Feb 2010
- Messages: 36
Re: QGIS 1.7 : Edition de données PostGIS via QGIS impossible
Merci pour ces 2 pistes.
L'observation des logs en temps réel avec "tail -f" confirme que l'écriture dans la table n'est jamais demandée.
Aucune requête de type "UPDATE" ne passe dans les logs au moment où, dans QGIS, je clique sur enregistrer au moment de la désactivation du mode "édition".
En revanche, cette requête de mise à jour de la bdd est visible dans les logs quand je sauvegarde une modification d'attribut dans une autre table PG.
En appliquant la piste n°1, j'ai remarqué que les différences entre tables autorisant ou pas les maj pourraient avoir un rapport avec la présence d'un index.
Je n'ai pas testé tous les cas possibles (type de champ indexé, type d'index, etc) mais je crois que : via QGIS, on ne peut pas mettre à jour une table spatiale PostGIS avec un index unique sur un champ de type integer.
à vérifier toutefois...
pour info, ma table a des géométries de type linéaire.
En tout cas, quand je retire l'index unique sur le champ de type integer, la maj via QGIS de la même table fonctionne !
Hors ligne
Pages: 1
- Sujet précédent - QGIS 1.7 : Edition de données PostGIS via QGIS impossible - Sujet suivant