Pages: 1
- Sujet précédent - QGIS 2.0 : ajouter une vue (postgresql) par un code python - Sujet suivant
#1 Tue 15 July 2014 11:22
- nora 27
- Participant actif
- Date d'inscription: 15 Jul 2014
- Messages: 59
QGIS 2.0 : ajouter une vue (postgresql) par un code python
bonjour,
c'est la première fois que je participe sur ce forum, je suis heureuse.
je veux ajouter une vue crée par une requête sql dans postgresql sur qgis en utilisant code python.
j'ai réussi à faire ça avec une table mais ça ne fonctionne pas avec la vue, il m'affiche le message suivant:
la couche n'est pas une couche valide et ne peut pas être ajoutée à la carte
le code que j'utilise pour ajouter une table est le suivant (je l'applique par console python de qgis):
Code:
uri = QgsDataSourceURI() uri.setConnection("localhost", "5432", "stat", "postgres", "admin") uri.setDataSource("public", "com", "the_geom") uri.uri() qgis.utils.iface.addVectorLayer(uri.uri(), "all_these_countries", "postgres")
comment peut on ajouter une vue en utilisant le code python?
merci d'avance de votre aide
Hors ligne
#2 Tue 15 July 2014 11:32
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
Bonjour et bienvenue su GeoRezo,
la vue doit proposer une colonne dont les valeurs sont uniques ? Est-ce la cas ?
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Tue 15 July 2014 13:37
- nora 27
- Participant actif
- Date d'inscription: 15 Jul 2014
- Messages: 59
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
il existe un champ dont les valeurs sont uniques mais il n'est pas mentionné comme clé primaire.
Hors ligne
#4 Wed 16 July 2014 02:10
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
J ai été confronté au même problème sans pouvoir le résoudre il y a quelque temps. Ma vue se chargeait parfaitement dans qgis normalement mais via du code python impossible. Donc si quelqu'un a l explication je suis aussi preneur.
Je n'ai pas testé sous spatialite pour voir si le problème est le même.
Cordialement,
Hors ligne
#5 Wed 16 July 2014 13:54
- nora 27
- Participant actif
- Date d'inscription: 15 Jul 2014
- Messages: 59
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
Bonjour et bienvenue su GeoRezo,
la vue doit proposer une colonne dont les valeurs sont uniques ? Est-ce la cas ?
j'ai tenté beaucoup pour créer ou définir une colonne clé primaire mais en vain.
s'il vous plait c'est urgent, Est ce que vous pouvez m'aider ?
merci
Hors ligne
#6 Wed 16 July 2014 14:46
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
Bonjour,
je viens de reproduire votre problème et d’après ce post : http://gis.stackexchange.com/questions/ … ok-recipe,
il vous faut ajouter à la fonction setDataSource le nom de la colonne identifiante. Dans mon cas c'est row_number :
Code:
uri.setDataSource("public", "test4", "geometrie", '', "row_number")
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#7 Wed 16 July 2014 15:31
- nora 27
- Participant actif
- Date d'inscription: 15 Jul 2014
- Messages: 59
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
Bonjour,
je viens de reproduire votre problème et d’après ce post : http://gis.stackexchange.com/questions/ … ok-recipe,
il vous faut ajouter à la fonction setDataSource le nom de la colonne identifiante. Dans mon cas c'est row_number :Code:
uri.setDataSource("public", "test4", "geometrie", '', "row_number")
merci beaucoup vous vraiment me sauvez.
ça fonctionne très bien
merci infiniment
Hors ligne
#8 Wed 16 July 2014 15:45
- nora 27
- Participant actif
- Date d'inscription: 15 Jul 2014
- Messages: 59
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
comment je peux mentionner que ce sujet est résolu?
cordialement
Hors ligne
#10 Thu 17 July 2014 13:09
- nora 27
- Participant actif
- Date d'inscription: 15 Jul 2014
- Messages: 59
Re: QGIS 2.0 : ajouter une vue (postgresql) par un code python
On ne peut pas marquer un sujet comme étant résolu sur GeoRezo.
Bonne continuation.
merci
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.0 : ajouter une vue (postgresql) par un code python - Sujet suivant