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 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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

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: 725

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

MathieuB a écrit:

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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

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

MathieuB a écrit:

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

 

#9 Wed 16 July 2014 15:56

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

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.


Mathieu BOSSAERT
Association GeoRezo

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

MathieuB a écrit:

On ne peut pas marquer un sujet comme étant résolu sur GeoRezo.

Bonne continuation.


merci

Hors ligne

 

Pied de page des forums

Powered by FluxBB